Lição do Teach
Arduino básico 3/4: controle a velocidade com um potenciômetro
Leia o potenciômetro de um Arduino Uno real e mapeie essa entrada para controlar a velocidade com que um LED pisca.
Entre com uma conta de professor para preparar uma sessão. Os estudantes entram com um código da turma.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor
Objetivos de aprendizagem
Ler um potenciômetro com
analogRead.Distinguir a faixa teórica do ADC da faixa prática do potenciômetro.
Usar
map()para transformar uma leitura em uma ação visível.
Visualização da atividade do estudante
Conteúdo da atividade
Apenas visualização. Em uma sessão de aula, os estudantes podem preencher respostas e entregar o trabalho ao professor.
Do mundo físico para um número
9 min
Um potenciômetro funciona como um botão giratório. O conversor analógico-digital padrão do Arduino Uno representa de 0 a 5 V com valores de 0 a 1023. O potenciômetro deste laboratório fornece de 0 a 3,3 V, portanto sua faixa útil de leitura é aproximadamente de 0 a 675. O código limita pequenas variações de medição e mapeia essa faixa prática para a velocidade do LED 1:
const int potMaxReading = 675;
int reading = analogRead(A0);
int calibratedReading = constrain(reading, 0, potMaxReading);
int waitTime = map(calibratedReading, 0, potMaxReading, 100, 1200);
delay(waitTime);
O mapeamento transforma uma leitura próxima de 0 em uma espera próxima de 100 ms e uma leitura próxima do máximo do laboratório em uma espera próxima de 1200 ms.
De acordo com esse trecho, se analogRead(A0) retornar um número pequeno, a espera será...
Faça o botão giratório controlar o LED
18 min
Envie o programa. Gire o potenciômetro 1 e observe como o piscar muda. Depois, troque a faixa 100, 1200 por outros valores: por exemplo, experimente uma espera máxima menor se não quiser que o LED pisque tão devagar.
const int pot1 = A0;
const int led1 = 8;
const int potMaxReading = 675;
void setup() {
pinMode(led1, OUTPUT);
}
void loop() {
int reading = analogRead(pot1);
int calibratedReading = constrain(reading, 0, potMaxReading);
int waitTime = map(calibratedReading, 0, potMaxReading, 100, 1200);
digitalWrite(led1, HIGH);
delay(waitTime);
digitalWrite(led1, LOW);
delay(waitTime);
}Abra o laboratório e localize o potenciômetro 1.
Envie o programa.
Teste o potenciômetro próximo do mínimo, no meio e próximo do máximo.
Troque a faixa
100, 1200por outros valores e teste novamente.
Envie seu código
Capture o código com a faixa de espera que parece mais clara para você. Antes de anexá-lo, salve main.ino no ambiente do laboratório. A captura deve mostrar o programa que você realmente quer que o professor analise.
Relacione o número ao efeito
8 min
Descreva o que você observou ao mover o potenciômetro. Qual faixa de espera escolheu e por quê?
Transforme esta visualização em uma sessão de aula
Continue para o LabsLand Teach para usar esta lição com seus estudantes e conferir o acesso disponível para sua conta.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor