4 2 LED ai lati con lampeggio alternato
5 1 LED in coda lampeggio a freq doppia
8 1 interruttore su interrupt 0 per accensione / spegnimento luci
11 Realizzato con un semplice ciclo IF per ON / OFF,
12 lo sketch successsivo ha un macchina a stati per gestire
13 la transizione ON <-> OFF con una dissolvenza.
18 // Variabili per interrupt 0
19 volatile unsigned int chValue = 1500; // Valore computato
20 volatile unsigned int chStart = 1500; // Inizio rilevamento
22 // Instanziamo un LED fuori dal loop
23 Lampeggiatore left = 5;
24 Lampeggiatore right = 6;
25 Lampeggiatore coda = 9;
28 // I PINs vengono impostati dal constructor al momento
29 // della dichiarazione dell'ogetto.
31 attachInterrupt(0, chRise, RISING); // PIN 2 su 328p / 168
32 right.Invert() ; // Opzionale: inverte l'ordine del lampeggio da
33 // HI -> LOW --> LOW -> HI
34 // per avere 2 LED che lampeggiano alternativamente
40 left.Blink(); // Lampeggia con un default di 1sec (0.5 HI 0.5 LOW)
42 coda.Blink(1000); // Lampeggio in 1000ms = 1 secondo
44 // sarebbe carino mettere una transizione da on -> off con un fade down...
53 attachInterrupt(0, chFall, FALLING);
58 attachInterrupt(0, chRise, RISING);
59 chValue = micros() - chStart;