]> git.piffa.net Git - sketchbook_andrea/blob - oggi/button_state_4_state/button_state_4_state.ino
multi cleanup
[sketchbook_andrea] / oggi / button_state_4_state / button_state_4_state.ino
1 /*
2    Stato di un bottone
3  
4  Legge lo stato di un input
5  
6  */
7 int led = 13;              // Definizione delle variabili
8 int buttonPin = 2;              
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
13
14 void setup() {
15   pinMode(buttonPin, INPUT);    
16   pinMode(led, OUTPUT);    
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                        
20 }
21
22 void loop(){
23   statoAttuale = digitalRead(buttonPin);      // Legge lo stato del bottone e
24                                               //  lo registra nella variabile
25   delay(20);                                  // riduce l'effetto bounce
26   if (statoAttuale != ultimoStato) {          // lo stato del bottone e' cambiato
27     if (statoAttuale == HIGH) {               // il bottone e' stato premuto
28       Serial.println("Button premuto");
29      
30       ledStatus = !ledStatus ;          // Inverte lo stato del LED 
31       // ledStatus = 1 - ledStatus ;    // Forma analoga
32       
33       Serial.print("Stato del LED: ");  // DEBUG
34       Serial.println(ledStatus) ;
35     } 
36   }
37
38   ultimoStato = statoAttuale;        // Aggiorna lo stato finale al valore attuale
39   digitalWrite(led, ledStatus);      // setta il led allo stato richiesto
40
41 }
42
43 /* Domande:
44
45  1. I due cicli if verificano che due condizioni siano concomitanti: e' possibile
46     integrarli semplificando il codice?
47     
48  */
49