
Vídeo
Esquema do circuito

Código-fonte
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// LED Chaser
4// ─────────────────────────────────────────
5// The 6 LEDs light up one after another for 150 ms each, so the light
6// walks along the row. Shows multi-pin control with an array and a for
7// loop.
8//
9// Pins:
10// D2, D3, D4, D5, D6, D7 -> 6 LEDs (in order)
11// Each LED with a 330 ohm resistor
12
13int ledPins[] = {2, 3, 4, 5, 6, 7}; // LED pins in lighting order
14
15void setup() {
16 // Set all LED pins as outputs
17 for(int i = 0; i < 6; i++) {
18 pinMode(ledPins[i], OUTPUT);
19 }
20}
21
22void loop() {
23 // Light each LED in turn for 150 ms
24 for(int i = 0; i < 6; i++) {
25 digitalWrite(ledPins[i], HIGH);
26 delay(150);
27 digitalWrite(ledPins[i], LOW);
28 }
29}
30
Perguntas frequentes
Por que é melhor usar um array?▾
Ao guardar os números dos pinos em um array, você pode percorrer todos os LEDs com um laço for em uma única linha de código. Para mudar o número de LEDs neste código, atualize tanto o array ledPins quanto os limites i < 6 dos laços em setup() e loop(); não é preciso escrever uma linha separada para cada LED.
Se 6 LEDs acenderem ao mesmo tempo, o Arduino será danificado?▾
Considerando cerca de 10 mA por LED, seis LEDs consomem aproximadamente 60 mA. O limite superior recomendado por pino é 20 mA; é preciso respeitar tanto os limites de corrente de cada pino quanto os dos grupos de pinos. O valor máximo absoluto de 200 mA especificado para os pinos VCC/GND do ATmega328P não é uma meta de operação normal nem uma corrente disponível exclusivamente para I/O.
Como inverto a direção do movimento?▾
Configure o laço `for` em ordem inversa: `for (int i = 5; i >= 0; i--)`. Assim, a luz se move na direção oposta. Se você colocar os dois laços um após o outro, terá o efeito Knight Rider.
Um dos LEDs não acende. Qual pode ser o motivo?▾
O LED pode estar invertido, com um terminal mal encaixado na protoboard ou com o resistor em outra linha. Você pode descobrir se o LED está com defeito ou se há um problema na conexão colocando-o no lugar de um LED que funciona.
