4 Legge lo stato di un input
9 int statoAttuale; // Variabile per leggere lo stato del bottone
10 int ultimoStato; // Variabile per registrare l'ultimo stato del bottone
11 int ledStatus; // varabile per mantenere lo stato del led
14 pinMode(buttonPin, INPUT); // Set the switch pin as input
16 Serial.begin(9600); // Attiva la comunicazione seriale a 9600bps
17 ultimoStato = digitalRead(buttonPin); // Prima lettura del bottone
18 ledStatus = 0; // Il LED viene inpostato come spento
22 statoAttuale = digitalRead(buttonPin); // Legge lo stato del bottone e lo resistra in val
23 delay(20); // riduce l'effetto bounce
24 if (statoAttuale != ultimoStato && statoAttuale == HIGH) { // due condizione contemporanee
25 // lo stato del bottone e' camabiato AND lo stato attuale e' HIGH
26 Serial.println("Button premuto");
28 ledStatus = !ledStatus ; // Inverte lo stato del LED
29 // ledStatus = 1 - ledStatus ; // Forma analoga
31 Serial.print("Stato del LED: "); // DEBUG
32 Serial.println(ledStatus) ;
35 ultimoStato = statoAttuale; // Aggiorna lo stato finale al valore attuale
36 digitalWrite(led, ledStatus); // setta il led allo stato richiesto
44 1. La variabile ledstatus serve per tenere traccia dello stato del LED:
45 si potrebbe fare a meno di questa?
46 Cosa fa Arduino quando deve accendere o spegnere un LED?
47 Come funziona DigiralRead() ?
66 1. Per accendere o spegnere un LED Arduino imposta il valore del registro corrispondente
67 al PIN: se questo e' 0 il circuito e' aperto mentre se e' 1 il circuito e' chiuso.
68 Allo stesso modo con DigitalRead() e' possibile leggere lo stato di quel regustro
69 e conoscere se il LED e' acceso o spento.