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 passa dallo stato acceso a spento quando viene premuto il bottone.
42 3. Quanti stati ha il LED?
43 4. Sarebbe possibile passare rapidamente da uno stato all'altro?