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