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à)
}
