lunedì 28 dicembre 2015

Scratch e Arduino - Progetto #3: Il pulsante

Nei primi due progetti abbiamo acceso dei led tramite una scrittura di un valore su un pin digitale di arduino.In questo terzo progetto vediamo come effettuare una lettura digitale dello stato di un pulsante ed in generale di un pin digitale di arduino.

Obiettivi del progetto

Far accendere un led in conseguenza della pressione di un pulsante.

Lista Componenti

Vediamo di cosa abbiamo bisogno per eseguire il progetto.


Scheda Arduino
Breadboard

Pulsante per breadboard



1x Led

1x Resistenze da 220 ohm 



1x Resistenza da 100 Kohm


Fili Maschio-Maschio




Circuito e collegamenti

Qui lo schema dei collegamenti da realizzare. Ho usato il software Fritzing per rappresentare gli schemi di collegamento.






E qui la realizzazione su breadboard del circuito















Il circuito e' composto da due parti

  • connessioni per accensione led (come nei progetti precedenti)
  • connessioni per lettura stato pulsante

Come si vede il led e' collegato al piedino digitale 3 di arduino.
Come si vede il pulsante quando premuto collega i due piedini (normalmente un pulsante da breadboard ne ha 4, ma sono collegati a due a due) comportandosi cosi' come un filo. Questo ci permette di interrompere o di chiudere il circuito.

Un piedino del pulsante e' collegato al pin di arduino  +5V tramite il filo arancione. Il secondo piedino e' collegato al piedino GND di arduino tramite una resistenza (100 Kohm). Un capo della resistenza e' collegato al piedino 8 di arduino tramite un filo blue. Questo ci serve per permettere ad arduino di leggere lo stato del pulsante.

Questa resistenza si chiama resistenza di pull-down (per chi e' interessatu qui piu' dettagli) e ci serve per far leggere ad arduino uno stato logico LOW quando il pulsante e' rilasciato o non premuto.

Come si vede nel caso che il pulsante non sia premuto il pin 8 di arduino e' collegato tramite il filo blu alla resistenza che e' collegata tramite il filo nero a GND. Quindi il pin 8 e' effettivamente collegato a GND (LOW).

Al contrario quando il pulsante viene premuto i due piedini vengono cortocircuitati e quindi ai capi del filo blue ci sono +5V (HIGH) provenienti da arduino tramite il filo arancione.

In questo modo in funzione della pressione o rilascio del pulsante sul piedino 8 di arduino ci saranno +5V (HIGH) o GND (LOW). Non ci resta che leggere il valore del piedino 8 tramite il software per rilevare lo stato del pulsante.


Programma Scratch

Adesso che il circuito e' completo, passiamo alla parte software.
In sostanza dobbiamo accendere e spegnere i led in funzione dello stato del pulsante.

Codice base


Crea questo script in Scratch usando il mouse






Adesso vediamo cosa fa il programma scratch descrivendo i vari blocchetti dall'alto al basso:





Come nel primo esercizio connettiamo il ledA al pin digitale numero 3 di arduino. Siccome abbiamo associato un led al pin 3, scratch capisce che questo pin deve essere impostato come un'uscita (OUTPUT) e quindi scrivere un valore (HIGH/LOW)




In maniera simile, assiciamo il pulsanteA al pin digitale 8 di arduino.  Siccome abbiamo associato un pulsant al pin 8, scratch capisce che questo pin deve essere impostato come un ingresso (INPUT) e quindi leggere un valore (HIGH/LOW)

Questo e' il blocco principale che e' all'interno di un ciclo per sempre. Per prima cosa verifichiamo se il pulsante A e' stato premuto? Se si allora impostiamo il ledA a acceso di fatto accendento il led. Se no allora spegniamo il led (imposta led A a spento)


Come vedete il programma e' molto semplice, ma allo stesso tempo ci permette di imparare come leggere il valore di un pin digitale (pulsante) ed eseguire una logica per impostare il valore di un altro pin digitale (led).
Queste operazioni per quanto basilari sono utilissime in moltissimi progetti Arduino.

In questo progetto hai anche appreso l'utilizzo del costrutto condizionale (se - allora - altrimenti) che sara' utile in moltissimi altri progetti arduino.

Una volta fatto click sulla bandierina verde il programma inizia controllando lo stato del pulsante periodicamente ed accendendo o spegnendo il led di conseguenza.







Complimenti!!! Adesso possiamo pilotare arduino tramite la pressione di un pulsante!!!