Também chamamos o seguinte exemplo de "A Super Máquina" ou "O Justiceiro" em memória à série televisiva dos anos 80 na qual o famoso David Hasselhoff tinha uma máquina com inteligência artificial a guiar seu Pontiac. Para quem não conhece a série, o carro tinha sido incrementado com uma quantidade razoável de LEDs de todos os tamanhos possíveis, a cintilar.
Dessa forma, decidimos que a fim de aprender mais a respeito de programação de sequências e de boas técnicas de programação para a placa, seria interessante usar a série como metáfora.
Este exemplo emprega seis LEDs conectados aos pinos de 2 a 7 da placa, com o uso de resistores de 220 ohms. O primeiro código de exemplo fará com que os LEDs pisquem em sequência, um por um, apenas a usar digitalWrite(pino, HIGH/LOW) e delay(tempo). O segundo exemplo demonstra como usar uma construção for(;;) para realizar a mesma tarefa, mas com menos linhas de código. O terceiro e último exemplo concentra-se nos efeitos visuais de ligar e desligar os LEDs de forma mais difusa.
int timer = 100; // Quanto maior, mais devagar. int pins[] = { 2, 3, 4, 5, 6, 7 }; // vetor com o número dos pinos int num_pins = 6; // quantidade de LEDs (tamanho do vetor) void setup() { int i; for (i = 0; i < num_pins; i++) // elementos do vetor vão de 0 a num_pins - 1 pinMode(pins[i], OUTPUT); // configurar cada pino como saída } void loop() { int i; for (i = 0; i < num_pins; i++) { // varrer cada pino... digitalWrite(pins[i], HIGH); // ligando-o, delay(timer); // pausando-o, digitalWrite(pins[i], LOW); // e desligando-o. } for (i = num_pins - 1; i >= 0; i--) { digitalWrite(pins[i], HIGH); delay(timer); digitalWrite(pins[i], LOW); } }