4 Legge lo stato di un input
8 int switchPin = 2; // switch connesso al pin 2
9 // Nota: le prossime due variabili sono
10 // solo "definite" e non "inizializzate"
11 int statoAttuale; // Variabile per leggere lo stato del bottone
12 int ultimoStato; // Variabile per registrare l'ultimo stato del bottone
15 pinMode(switchPin, INPUT); // Set the switch pin as input
17 Serial.begin(9600); // Set up serial communication at 9600bps
18 ultimoStato = digitalRead(switchPin); // read the initial state
23 statoAttuale = digitalRead(switchPin); // Legge lo stato del bottone e lo resistra in val
24 delay(20); // riduce l'effetto bounce
25 if (statoAttuale != ultimoStato) {
26 // verifica due condizioni che devono realizzarsi contemporaneamente
27 if (statoAttuale == HIGH) { // il bottone e' stato premuto
28 Serial.println("Bottone premuto");
30 else { // il bottone non e' premuto...
31 Serial.println("Bottone rilasciato");
35 ultimoStato = statoAttuale; // Aggiorna lo stato finale al valore attuale
40 1. Cosa succde se non uso un delay(20) alla lettura del bottone?
41 2. Implementare un LED che cambia stato quando viene premuto il bottone.
42 3. Quanti stati ha il LED?
43 4. Sarebbe possibile passare rapidamente da uno stato all'altro?