4 Blink di un array di led in sucessione,
5 utilizzando millis() per non blocking.
6 L'array puo' contenere un numero arbitrario di led
7 (l'ordine in cui compaiono e' l'ordine in cui brillano).
12 - http://lab.piffa.net/schemi/8_led_single_res_bb.png
13 - http://lab.piffa.net/schemi/8_led_single_res_schem.png
15 http://www.arduino.cc/en/Tutorial/ForLoop
20 // Lampeggia LED in sequenza utilizzando millis()
21 unsigned long previousMillis ;
29 Sequenza (byte passed[], byte dim) {
32 for (int thisPin = 0; thisPin < size; thisPin++) {
33 pinMode(ledPins[thisPin], OUTPUT);
35 previousMillis = millis();
36 digitalWrite(ledPins[0], HIGH);
39 void Update(long value) {
41 if (millis() - previousMillis >= interval) {
42 previousMillis = millis();
45 // Spegni precedente led
46 digitalWrite(ledPins[i], LOW);
48 // Accendi successivo led
49 digitalWrite(ledPins[++i], HIGH);
52 else if (i == size - 1 ) {
55 previousMillis = millis();
56 digitalWrite(ledPins[i], HIGH);
57 digitalWrite(ledPins[ size - 1 ], LOW);
63 void Reverse(long value) {
65 if (millis() - previousMillis >= interval) {
66 previousMillis = millis();
68 if (i == 0) { // Entry point, ultimo LED
69 digitalWrite(ledPins[size - 1], HIGH);
70 digitalWrite(ledPins[0], LOW);
74 digitalWrite(ledPins[i], LOW);
75 digitalWrite(ledPins[--i], HIGH);
82 if (millis() - previousMillis >= interval) {
83 previousMillis = millis();
84 // Spegni precedente led
85 digitalWrite(ledPins[i], LOW);
87 // Accendi successivo led
88 digitalWrite(ledPins[i], HIGH);
90 if (i == 0 || i == size - 1) {
107 Sequenza seq = Sequenza(pins, sizeof(pins));