
Vídeo
Esquema do circuito

Código-fonte
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Knight Rider LED Effect
4// ─────────────────────────────────────────
5// The 6 LEDs light up one by one forward, then backward (Knight Rider
6// effect). Shows bidirectional for loop logic.
7//
8// Pins:
9// D2, D3, D4, D5, D6, D7 -> 6 LEDs (in order)
10// Each LED with a 330 ohm resistor
11
12int ledPins[] = {2, 3, 4, 5, 6, 7}; // LED pins in lighting order
13
14void setup() {
15 // Set all LED pins as outputs
16 for(int i = 0; i < 6; i++) {
17 pinMode(ledPins[i], OUTPUT);
18 }
19}
20
21void loop() {
22 // Forward: D2 to D7, 100 ms per LED
23 for(int i = 0; i < 6; i++) {
24 digitalWrite(ledPins[i], HIGH);
25 delay(100);
26 digitalWrite(ledPins[i], LOW);
27 }
28
29 // Backward: D6 to D3. The end LEDs are skipped so the bounce looks seamless
30 for(int i = 4; i > 0; i--) {
31 digitalWrite(ledPins[i], HIGH);
32 delay(100);
33 digitalWrite(ledPins[i], LOW);
34 }
35}
36
Perguntas frequentes
Como é criado o efeito Knight Rider?▾
Os LEDs acendem em sequência, primeiro da esquerda para a direita e depois da direita para a esquerda. Dois laços "for" são executados um após o outro; como o segundo conta na direção oposta, a luz vai e volta.
Os LEDs das pontas parecem piscar duas vezes. Como corrijo isso?▾
Se o laço de volta acender novamente o LED da ponta, ele ficará aceso por dois passos. Você pode evitar a repetição nas pontas ajustando o índice inicial do laço de volta em uma posição (por exemplo, de 4 a 1).
Como ajusto a velocidade?▾
Altere o valor de delay() entre cada passo. Um valor entre 30 e 80 ms produz um efeito fluido. Se quiser ajustar a velocidade durante a execução, você pode adicionar um potenciômetro, como no próximo projeto, "Efeito Knight Rider com velocidade ajustável".
Posso adicionar mais LEDs?▾
Sim, basta adicionar novos pinos ao array e atualizar os limites dos laços. O Uno tem 12 pinos digitais livres; para usar mais, você pode acionar 8 ou mais LEDs com apenas 3 pinos usando um registrador de deslocamento 74HC595.
