--- /dev/null
+/*
+ Stato di un bottone
+
+ Legge lo stato di un input
+
+ */
+const int led = 13;
+const int buttonPin = 2;
+boolean statoAttuale; // Variabile per leggere lo stato del bottone
+boolean ultimoStato; // Variabile per registrare l'ultimo stato del bottone
+
+void setup() {
+ pinMode(buttonPin, INPUT); // Set the switch pin as input
+ pinMode(led, OUTPUT);
+ ultimoStato = digitalRead(buttonPin); // Prima lettura del bottone
+}
+
+void loop(){
+ statoAttuale = digitalRead(buttonPin); // Legge lo stato del bottone e lo resistra in val
+ delay(20); // riduce l'effetto bounce
+ if (statoAttuale != ultimoStato && statoAttuale == HIGH) { // due condizione contemporanee
+ // lo stato del bottone e' camabiato AND lo stato attuale e' HIGH
+ digitalWrite(led, !(digitalRead(led))); // Il processore setta lo stato di un led
+ // impostando il relativo PIN: possiamo leggere il relativo registro allo stesso modo di un bottone.
+ }
+
+ ultimoStato = statoAttuale; // Aggiorna lo stato finale al valore attuale
+}
+
+
+
+/* Domande:
+
+ 1. La variabile ledstatus serve per tenere traccia dello stato del LED:
+ si potrebbe fare a meno di questa?
+ Cosa fa Arduino quando deve accendere o spegnere un LED?
+ Come funziona DigiralRead() ?
+
+ .
+ .
+ .
+ .
+ .
+ .
+ .
+ .
+ .
+ .
+ .
+ .
+ .
+ .
+ .
+ Soluzione:
+
+ 1. Per accendere o spegnere un LED Arduino imposta il valore del registro corrispondente
+ al PIN: se questo e' 0 il circuito e' aperto mentre se e' 1 il circuito e' chiuso.
+ Allo stesso modo con DigitalRead() e' possibile leggere lo stato di quel regustro
+ e conoscere se il LED e' acceso o spento.
+ */