4 Legge lo stato di un input
7 int led = 13; // Definizione delle variabili
9 // Dichiarazione di variabili
10 int statoAttuale; // Variabile per leggere lo stato del bottone
11 int ultimoStato; // Variabile per registrare l'ultimo stato del bottone
12 int ledStatus; // varabile per mantenere lo stato del led
15 pinMode(buttonPin, INPUT);
17 Serial.begin(9600); // Attiva la comunicazione seriale a 9600bps
18 ultimoStato = digitalRead(buttonPin); // Prima lettura del bottone
19 ledStatus = 0; // Il LED viene inpostato come spento
23 statoAttuale = digitalRead(buttonPin); // Legge lo stato del bottone e lo registra in val
24 delay(20); // riduce l'effetto bounce
25 if (statoAttuale != ultimoStato) { // lo stato del bottone e' cambiato
26 if (statoAttuale == HIGH) { // il bottone e' stato premuto
27 Serial.println("Button premuto");
29 ledStatus = !ledStatus ; // Inverte lo stato del LED
30 // ledStatus = 1 - ledStatus ; // Forma analoga
32 Serial.print("Stato del LED: "); // DEBUG
33 Serial.println(ledStatus) ;
37 ultimoStato = statoAttuale; // Aggiorna lo stato finale al valore attuale
38 digitalWrite(led, ledStatus); // setta il led allo stato richiesto
44 1. I due cicli if verificano che due condizioni siano concomitanti: e' possibile
45 integrarli semplificando il codice?