Arduino: come collegare un pulsante

DiFabio Gangemi

Arduino: come collegare un pulsante

Nel precedente articolo “Arduino: come iniziare a programmarlo” abbiamo messo mano al nostro primo sketch.

Attraverso una serie di istruzioni come “digitalWrite” e “delay” abbiamo detto ad Arduino di accendere e spegnere un LED secondo dei tempi da noi stabiliti.

Dal primo sketch da noi realizzato abbiamo imparato che:

  • Arduino esegue le istruzioni scritte nello sketch in sequenza, partendo dalla prima in alto, fino all’ultima in basso. Eseguita l’ultima istruzione riparte nuovamente dalla prima. Questa procedura si può tranquillamente definire “Ciclo”.
  • Attraverso l’istruzione digitalWrite(numero pin, HIGH o LOW); possiamo inviare un segnale ad un determinato pin facendo in modo che lo stesso sia accesso o spento.
  • Attraverso l’istruzione delay(tempo in millisecondi); facciamo in modo che Arduino si fermi, faccia una pausa, per il tempo scritto fra le parentesi.

Arrivati a questo punto direi di fare il passo successivo cosi da iniziare ad addentraci meglio nel mondo della programmazione di Arduino.

Per far questo passiamo ad utilizzare un “pulsante” così da fare in modo che Arduino esegua una determinata azione alla pressione dello stesso.

Alla ricezione di un “input” su uno dei pin che sceglieremo fra quelli presenti sulla scheda, cioè alla pressione del pulsante, faremo in modo che Arduino accenda un LED. Quando rilasciamo il pulsante al contrario faremo in modo che arduino spenga il LED.

In quanto verrebbe difficile collegare direttamente un pulsante su Arduino quello che consiglio e di dotarsi di una “breadboard” al fine che i vari collegamenti elettrici vengano poi eseguiti sulla stessa.

Nota: Esistono dei kit Arduino, più precisamente si chiamano “Starter Kit”, all’interno dei quali trovate tutto l’occorrente, breadboard, pulsanti, LED, sensori, cavetti vari, ecc… per esercitarvi fin da subito e senza pensieri. L’acquisto di uno starter kit vi consente di poter avere divesri dispositivi che sono al 100% compatibili fra di loro ma soprattutto con Arduino.

Ritornando al nostro progetto di seguito vi riporto l’immagine dello schema realizzata attraverso “Tinkercad” di “Autodesk”.

Arduino schema pulsante 1 Tinkercad

Si tratta di un utile toools molto intuitivo e facile da usare che permette di realizzare gli schemi dei collegamenti elettrici come se avessimo fra le mani i vari componenti, Arduino, breadbord, LED, pulsanti ecc..

Attraverso Tinkercad una volta realizzato lo schema con i vari collegamenti potete anche scrivere gli sketch per Arduino sia in modalità blocchi o testuale e simulare il funzionamento del vostro progetto appena realizzato.

Per poter usare Tinkercad vi basta avere una connessione ad internet ed accedere al sito web Ttinkercad.com, registrarvi attraverso email e password, effettuare l’accesso e utilizzare tranquillamente lo stesso in quanto è totalmente gratuito.

Si Si ho detto bene!! Tinkercad è totalmente gratuito!!

Collegate il vostro Arduino secondo lo schema riportato nell’immagine e quando pronti iniziate con scrivere lo sketch seguente:

/*
 *  Push Button Sketch
 *  Esercizio pulsante Funzioni If e Else
 *  Attraverso un interruttore collegato al pin 2 accendiamo il led che si trova sul pin n.13
*/

const int ledPin = 13; //Indichiamo ad Arduino quale sarà il pin sul quale collegheremo il LED
const int inputPin = 2; //Indichiamo ad Arduino quale sarà il pin sul quale collegheremo il pulsante, dove arriverà l’input

void setup()
{
pinMode(ledPin, OUTPUT); //Dichiariamo ad Arduino che il pin dov’è c’è collegato il LED sarà un OTPUT
pinMode(inputPin, INPUT);//Dichiariamo ad Arduino che il pin sul quale c’è collegato il pulsante sarà un INPUT
}

void loop()
{
int val = digitalRead(inputPin);  /*Qui Arduino legge il valore dell’input ricavato dall’istruzione “digitalRead” e assegna lo stesso alla variabile “val”.
La variabile dipende dal pulsante, se lo stesso è premuto o meno.*/

if(val == HIGH) /*Se il valore della variabile “val” è HIGH cioè se il pulsante sul pin n.2 è premuto                   Arduino esegue l’istruzione successiva presente fra le prime due parentesi graffe. */ 
{
digitalWrite(ledPin, HIGH); //Arduino accende il LED
 }

else //Altrimenti se il valore e dell’input è LOW, cioè il pulsante non è premuto Arduino esegue quest’altra istruzione presente fa le due parentesi graffe sottostanti

 {
digitalWrite(ledPin, LOW); //Arduino spegne il LED
}
}

Di seguito la descrizione dello sketch con l’aiuto dei relativi “screenshot” nel quale metto in evidenza le varie sezioni.

Si parte subito con del testo su più righe racchiuso fra i simboli “/* e */”

Arduino sketch pulsante, testo su più righe.

Successivamente vengono dichiarae due varabili, una che verrà chiamata “ledPin” ed è relativa al LED che fa riferimento al pin n.13. L’altra inveche che verrà chiamata “inputPin” che fa riferimento al pin n.2 sul quale c’è collegato il pulsante.

Arduino sketch pulsante, dichiarazione delle variabili.

A questo punto nella la sezione “void setup” impostiamo attravserso l’istruzione “pinMode” se i pin relativi  alle variabili  “ledPin” e “inputPin” saranno INPUT oppure OUTPUT.

Arduino sketch pulsante impostazione dei pin come input o output

Nella sezione “void loop” Arduino legge attravserso l’istruzione “int val = digitalRead(inputPin);” se arriva un iput dal pin n.2 dove c’è collegato il pulsante.

Arduino sketch pulsante funzione digitalread

Successivamente si passa alla funzione “Se” “if”, che verifica se la variabile chiamata “val” sia uguale a HIGH come dalla relativa istruzione if(val == HIGH) 

Arduino sketch pulsante funzione if

Se il valore della variabile “val” è HIGH, il pulsante è premuto, allora Arduino esegue la prima istruzione presente fra le prime due parentesi graffe {digitalWrite(ledPin, HIGH);} e il LED cosi si accende.

Arduino sketch pulsante funzione digitalwrite

Al contrario se il valore della variabile “val” è “LOW”, Arduino passa ad eseguire l’istruzione “else” (altrimenti) che contiene fra le successive parentesi graffe l’istruzione“{digitalWrite(ledPin, LOW);}” Arduino spegne il LED.

Arduino sketch pulsante funzione else

Eseguita l’ultima istruzione Arduino riparte nuovamente dalla prima.

Per Concludere:
Arduino grazie alla sua capacità di rilevare input Analogici e Digitali, attraverso l’uso di pulsanti, sensori collegati e configurati in modo opportuno, può rispondere all’utente e al mondo che lo circonda e attuare di conseguenza delle azioni prestabilite.

Attenzione

Vi ricordo che bisogna prestare molta attenzione a come si dispongono i cavi e a come si alimentano i vari componenti che si sta usando. Se si crea un “corto circuito” fra i vari pin collegando +5 volt direttamente a GND (senza interporre nessuna resistenza fra di essi) o si superano i 5 volt di alimentazione, sia Arduino che i componenti rischiano di danneggiarsi irreparabilmente.  Alcuni modelli di Arduino e loro dispositivi funzionano 3,3 volt in questo caso non bisogna superare questo valore per non danneggiare gli stessi.

Nota: i più attenti si saranno sicuramente accorti che nel circuito sono presenti due resistenze:
la prima collegata sul pulsante, i cui capi sono a loro volta collegati uno sul pin n.2, sullo stesso contatto di input del pulsante, mentre l’atro capo a sua volta è collegato al “GND”. Questa resistenza da 10k Ohm serve ad abbassare il voltaggio al minimo quando l’interruttore non è premuro cosicché lo stato del pin n.2 sia imposta a “LOW”. Quando viene premuto il pulsante si crea un collegamento “diretto” fra il pin n.2 e +5 volt di conseguenza il valore interpretato dall’istruzione “digitalRead” cambia passando dallo stato “LOW” a “HIGH”.

La seconda resistenza, del valore di 220 Ohm, è collegata in serie all’“Anodo” (polo positivo) del LED. La stessa serve per limitare la quantità di corrente che fluisce nel LED. Se si superano i 5 volt o si fa lavorare un LED su valori simili lo stesso finirà con il bruciare. Le resistenze possono essere collegate in serie sia all’anodo che al “catodo” (polo negativo) del LED.

Quasi finito!!

A questo punto collegate il vostro Arduino al computer, aprite L’IDE, compilate lo sketch come indicato qualche rigo più su, cliccate su verifica, poi su  carica e testate quanto appena da voi realizzato. 

In alternativa se non avete un arduino fra le mani realizzate il tutto tramite Tinkercad.

E’ fatta!!

Se avete fatto tutto correttamente godetevi il vostro risultato, sono belle soddifazioni!! In caso contrario non demordere!! Controllate, verificate, passo passo ogni step, collegamenti, istruzioni dello sketch e vedrete che ci riuscirete anche voi. 

Non abbiate paura di sbagliare!!

Con questo mio ulteriore articolo spero di avervi aiutato un po’ di più nel comprendere come funziona la programmazione di Arduino.

Provate voi adesso a cambiare i pin sul quale avete collegato LED e Pulsante e ad apportare le giuste modifiche allo sketch al fine che il progetto continui a funzionare normalmente.

Provate ad aggiungere ulteriori pulsanti e ulteriori LED.

Provate a “temporizzare” il progetto affinché il LED rimanga acceso un paio di secondi, decidete voi quanti.

Ricordatevi che sono sempre a vostra disposizione per approfondire e discutere di qualunque argomento riguardi il mondo di Arduino.

Come sempre vi invito anche a segnalare ulteriori risorse, siti web, progetti, idee, che riguardano Arduino cosi che possa pubblicare il tutto sul sito e consentire agli utenti di reperirle più facilmente.

 

 

Info sull'autore

Fabio Gangemi administrator

Docente a contratto presso MIUR, Project Manager presso Osticket.it. Collaboro con diversi professionisti per divulgare articoli, informazioni utili, riguardanti la tecnologia e il suo buon uso.

You must be logged in to post a comment.