]> git.piffa.net Git - sketchbook_andrea/blob - oggi/button_state_3/button_state_3.ino
ERRATA
[sketchbook_andrea] / oggi / button_state_3 / button_state_3.ino
1 /*
2    Stato di un bottone
3  
4  Legge lo stato di un input
5  
6  */
7
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
13
14 void setup() {
15   pinMode(switchPin, INPUT);    // Set the switch pin as input
16
17   Serial.begin(9600);           // Set up serial communication at 9600bps
18   ultimoStato = digitalRead(switchPin);   // read the initial state
19 }
20
21
22 void loop(){
23   statoAttuale = digitalRead(switchPin);      // Legge lo stato del bottone e 
24                                               // lo resistra nella variabile
25    delay(20);                                 // riduce l'effetto bounce
26   if (statoAttuale != ultimoStato) { 
27       // verifica due condizioni che devono realizzarsi contemporaneamente
28     if (statoAttuale == HIGH) {               // il bottone e' stato premuto
29       Serial.println("Bottone premuto");
30     } 
31     else {                                    // il bottone non e' premuto...
32       Serial.println("Bottone rilasciato");
33     }
34   }
35
36   ultimoStato = statoAttuale;                 // Aggiorna lo stato finale al valore attuale
37 }
38
39 /* Domande:
40
41  1. Cosa succde se non uso un delay(20) alla lettura del bottone?
42  2. Implementare un LED che cambia stato quando viene premuto il bottone.
43  3. Quanti stati ha il LED?
44  4. Sarebbe possibile passare rapidamente da uno stato all'altro?
45  
46  */
47