
Vídeo
Esquema do circuito

Código-fonte
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// LED Chaser with Adjustable Speed
4// ─────────────────────────────────────────
5// A potentiometer sets the speed of the walking LED effect. A0 is read at
6// every step and its 0-1023 value becomes the delay time (ms).
7//
8// Pins:
9// D2, D3, D4, D5, D6, D7 -> 6 LEDs (in order)
10// Each LED with a 330 ohm resistor
11// A0 -> Potentiometer wiper
12// (outer legs to 5V and GND)
13
14int ledPins[] = {2, 3, 4, 5, 6, 7}; // LED pins in lighting order
15int potValue; // Pot value = delay (ms)
16
17void setup() {
18 // Set all LED pins as outputs
19 for(int i = 0; i < 6; i++) {
20 pinMode(ledPins[i], OUTPUT);
21 }
22}
23
24void loop() {
25 for(int i = 0; i < 6; i++) {
26 potValue = analogRead(A0); // Read the speed (0-1023)
27 digitalWrite(ledPins[i], HIGH);
28 delay(potValue); // Wait as many ms as the pot value
29 digitalWrite(ledPins[i], LOW);
30 }
31}
32
Perguntas frequentes
Quais valores `analogRead` retorna?▾
As entradas analógicas do Uno leem de 0–5 V com resolução de 10 bits e retornam um valor entre 0 e 1023. Ao girar o potenciômetro de uma ponta à outra, o valor varia de 0 a 1023.
Como convertemos a leitura do potenciômetro em velocidade?▾
Com a função `map()`, você pode converter a faixa de 0–1023 para o intervalo de atraso que quiser (por exemplo, 20–500 ms): `map(value, 0, 1023, 20, 500)`. Quando esse valor é usado dentro de `delay()`, a velocidade muda na hora.
Como ligar os terminais de um potenciômetro?▾
Os dois terminais externos são ligados a 5 V e GND, e o terminal central (cursor) é ligado a uma entrada analógica (por exemplo, A0). Se você inverter os terminais externos, apenas o sentido de ajuste será invertido; o circuito não será danificado.
Por que as mudanças de velocidade são detectadas com atraso?▾
Se o potenciômetro for lido apenas no início do laço, o novo valor só será aplicado depois que todos os LEDs tiverem acendido. Se você fizer a leitura no passo de cada LED, a velocidade mudará na hora.
