INPUT DIGITALE: Esempio PUSHBUTTON
Costruire il seguente circuito (serve una resistenza da 10K)
uno switch
I piedini A e C sono sempre connessi fra loro, così come i piedini B e D. Quando il pulsante viene premuto, sono connessi tra loro tutti i piedini.
Ecco l'immagine del circuito
Codice Sorgente A
/* ----------------------------------------------------------------------------------- Esempio creato partendo dal codice: DigitalReadSerial di pubblico dominio. Legge un input di tipo digitale sul pin 2 e mostra il risultato sul Serial Monitor ----------------------------------------------------------------------------------- */ int pushButton = 2; // Il pin digitale 2 è connesso al bottone // La routine di "setup" parte appena premo il tasto di reset: void setup() { // inizializza la comunicazione seriale a 9600 bit per secondo: Serial.begin(9600); // Imposto il pin 2 come pin di input pinMode(pushButton, INPUT); } // La loop routine continua a girare: void loop() { // Legge lo stato sul PIN 2 int buttonState = digitalRead(pushButton); // Stampa sul Serial Monitor il valore letto sul pin 2 (pushButton) Serial.print(buttonState); delay(1000); // ritardo di un secondo }
Codice Sorgente B
/* ----------------------------------------------------------------------------------- Esempio creato partendo dal codice: DigitalReadSerial di pubblico dominio. Legge un input di tipo digitale sul pin 2 e mostra il risultato sul Serial Monitor ----------------------------------------------------------------------------------- */ int pushButton = 2; // Il pin digitale 2 è connesso al bottone // La routine di "setup" parte appena premo il tasto di reset: void setup() { // inizializza la comunicazione seriale a 9600 bit per secondo: Serial.begin(9600); // Imposto il pin 2 come pin di input pinMode(pushButton, INPUT); } // La loop routine continua a girare: void loop() { // Legge lo stato sul PIN 2 int buttonState = digitalRead(pushButton); // Stampa sul Serial Monitor se il bottone è premuto o meno if (buttonState==LOW) Serial.println("Non premuto"); else Serial.println("Premuto"); delay(1000); // ritardo di un secondo }
Codice Sorgente C
/* ----------------------------------------------------------------------------------- Esempio creato partendo dal codice: DigitalReadSerial di pubblico dominio. Legge un input di tipo digitale sul pin 2 e mostra il risultato sul Serial Monitor ----------------------------------------------------------------------------------- */ int pushButton = 2; // Il pin digitale 2 è connesso al bottone int precbuttonState=-1; // Variabile globale per il precedente stato // La routine di "setup" parte appena premo il tasto di reset: void setup() { // inizializza la comunicazione seriale a 9600 bit per secondo: Serial.begin(9600); // Imposto il pin 2 come pin di input pinMode(pushButton, INPUT); } // La loop routine continua a girare: void loop() { // Legge lo stato sul PIN 2 int buttonState = digitalRead(pushButton); // Stampa sul Serial Monitor, se premo il pushbutton, lo stato del bottone: if (buttonState!=precbuttonState) { if (buttonState==0) Serial.println("Non premuto"); else Serial.println("Premuto"); } precbuttonState=buttonState; // ritardo di un decimo tra una lettura e la successiva (per stabilità) delay(100); }
Codice Sorgente D
/* ----------------------------------------------------------------------------------- Esempio creato partendo dal codice: DigitalReadSerial di pubblico dominio. Legge un input di tipo digitale sul pin 2 e mostra il risultato sul Serial Monitor ----------------------------------------------------------------------------------- */ int conta=0; int pushButton = 2; // Il pin digitale 2 è connesso al bottone int precbuttonState=-1; // Variabile globale per il precedente stato // La routine di "setup" parte appena premo il tasto di reset: void setup() { // inizializza la comunicazione seriale a 9600 bit per secondo: Serial.begin(9600); // Imposto il pin 2 come pin di input pinMode(pushButton, INPUT); } // La loop routine continua a girare: void loop() { // Legge lo stato sul PIN 2 int buttonState = digitalRead(pushButton); // Stampa sul Serial Monitor, se premo il pushbutton, lo stato del bottone: if ( (buttonState!=precbuttonState) && (buttonState==1) ) { conta++; Serial.print("Conteggio: "); Serial.println(conta); } precbuttonState=buttonState; delay(100); // ritardo di un decimo tra una lettura e la successiva (per stabilità) }