Il pulsante è un componente che collega due punti in un circuito quando viene premuto. Il circuito e il programma che faremo consentirà di accendere un LED quando si preme il pulsante.

Dobbiamo collegare tre cavi alla scheda Arduino:

Il primo va da un piedino del pulsante attraverso una resistenza di pull-down di 2,2 KOhm al GND. Il secondo va dall’altro piedino corrispondente del pulsante al +5V. Il terzo si connette al pin digitale 2 che legge lo stato del pulsante. Poi bisogna ancora connettere il led con una resistenza da 330 Ohm al pin digitale 13.

Quando il pulsante è aperto (ossia non premiamo) non vi è alcuna connessione tra i due piedini del pulsante e leggeremo un valore HIGH. Quando il pulsante viene chiuso (ossia premiamo), leggeremo un valore LOW. È inoltre possibile collegare questo circuito in senso opposto, con una resistenza di pull-down in modo da avere l’effetto controria ossia quando viene premuto il pulsante avremo un valore HIGH e viceversa.

Il circuito da realizzare è il seguente:

Immagine1-300x181

 

Dove la resistenza in serie al led è di 330 Ohm mentre la resistenza di pull-down è di 2,2 KOhm.

Passiamo al codice, apriamo il IDE e scriviamo il seguente codice:

 

#define ledPin 13 //Pin digitale 13 per il led
#define buttonPin 2 //Pin digitale 2 per il bottone
int buttonState = 0; //Variabile per la lettura dello stato del pin

void setup()
{
pinMode(ledPin, OUTPUT); //Dichiaro il pin 13 come output
pinMode(buttonPin, INPUT); //Dichiaro il pin 2 come input
}

void loop()
{
buttonState = digitalRead(buttonPin); //Legge il valore del pulsante, ossia il valore del pin 2
//Controllo lo stato del pulsante
if (buttonState == HIGH)
digitalWrite(ledPin, LOW); //Spengo il led
else
digitalWrite(ledPin,HIGH); //Accendo il led
}

 


1-digitalRead(): Legge il valore proveniente da un pin digitale. Trattandosi di un pin digitale può leggere solo due valori: HIGH o LOW. La sintassi è la seguente: digitalRead(pin);

2-buttonState == HIGH: Faccio notare la differenza tra scrivere buttonState == HIGH e buttonState = HIGH: il primo confronta se buttonState è uguale al valore HIGH mentre il secondo assegna a buttonState il valore HIGH.