Teach Remote lab lessons

Teach lesson

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.

  • Arduino Board (code)
  • 35 min
  • Ensino Fundamental II / primeiras aulas de programação física
  • Português (Brasil)
  • Embedded systems
Arduino Board (code)
Arduino Board (code) · Lab details

Learning Outcomes

  • 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.

Student activity preview

Activity Content

Preview only. In a class session, students can fill in responses and submit their work to the teacher.

1

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á...

2

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);
}
  1. Abra o laboratório e localize o potenciômetro 1.

  2. Envie o programa.

  3. Teste o potenciômetro próximo do mínimo, no meio e próximo do máximo.

  4. Troque a faixa 100, 1200 por 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.

3

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ê?