4 Introdotto un argomento per la funzione che nodifica l'intervallo di lampeggio
8 // Lampeggia un LED utilizzando millis()
10 int ledPin ; // il numero del LED pin
11 int ledState ; // stato attuale del LED
12 long interval ; // milliseconds di intervallo nel lampeggiare
13 long previousMillis ; //precedente cambio di stato
17 // Instanziamo i due led dalla classe
24 pinMode(ledA.ledPin, OUTPUT); // Domanda: integrare l'impostazione del LED nel codice della funzione.
25 pinMode(ledB.ledPin, OUTPUT);
30 ledA = lightLed(ledA ); // Aggiorna lo stato del LED in base all'esecuzione della funzione
31 ledB = lightLed(ledB );
37 struct blinkLed lightLed(struct blinkLed temp) { // dataType tipo_di_struct nome_funzione(argomenti)
38 // Illumina il ledA secondo un intervallo passato come argomento
40 if(millis() - temp.previousMillis > temp.interval) { // gli elementi dello struct sono accessibili tramite l'operatore [punto]
41 // save the last time you blinked the LED
42 temp.previousMillis = millis();
44 // if the LED is off turn it on and vice-versa:
45 temp.ledState = !temp.ledState ; // Inverti il LED
47 digitalWrite(temp.ledPin, temp.ledState);
48 return(temp); // copy by value