*/
int switchPin = 2; // switch connesso al pin 2
+ // Nota: le prossime due variabili sono
+ // solo "definite" e non "inizializzate"
int statoAttuale; // Variabile per leggere lo stato del bottone
int ultimoStato; // Variabile per registrare l'ultimo stato del bottone
void loop(){
statoAttuale = digitalRead(switchPin); // Legge lo stato del bottone e lo resistra in val
- // delay(20) // riduce l'effetto bounce
- if (statoAttuale != ultimoStato) { // lo stato del bottone e' cambiato
+ delay(20); // riduce l'effetto bounce
+ if (statoAttuale != ultimoStato) {
+ // verifica due condizioni che devono realizzarsi contemporaneamente
if (statoAttuale == HIGH) { // il bottone e' stato premuto
Serial.println("Bottone premuto");
}
- else { // the button is -not- pressed...
+ else { // il bottone non e' premuto...
Serial.println("Bottone rilasciato");
}
}
ultimoStato = statoAttuale; // Aggiorna lo stato finale al valore attuale
}
+/* Domande:
+
+ 1. Cosa succde se non uso un delay(20) alla lettura del bottone?
+ 2. Implementare un LED che cambia stato quando viene premuto il bottone.
+ 3. Quanti stati ha il LED?
+ 4. Sarebbe possibile passare rapidamente da uno stato all'altro?
+
+ */
+