In questo tutorial useremo due pulsanti push button ed approfondiremo l’uso di uno Shift Register 74HC595 per accendere interattivamente 8 led con Arduino.
Introduzione
Questo tutorial estende il precedente (Tutorial 74HC595 v1) 8 led con uno Shift Register introducendo due pulsanti con cui andare a comandare lo Shift Register; seguitelo fino al completamento dell’assemblaggio della breadboard, cioè arrivate allo step 9. Il codice utilizzato in quel tutorial non sarà qui necessario.
Lista della Spesa
Per questo progetto avrete bisogno di:
- 1 IC 74HC59
- 1 Arduino UNO
- 8 led
- 8 resistenze da 220Ω
- 1 potenziometro da 10kΩ
- 2 pulsanti push button
- cavetti di vari colori
[amazon_link asins=’B01N67ICEC,B00QH6FFXS,B008GRTSV6,B06X3VT6TD,B01JJ94UVW’ template=’ProductCarousel2′ store=’azerbinati-21′ marketplace=’IT’ link_id=’4c2fb225-37e6-11e8-bef0-8339c29fbe44′]
I Pulsanti
Prima di iniziare, un piccolo ripasso sui pulsanti push button. Questi componenti sono più correttamente denominati interruttori momentanei, ad indicare in primo luogo che dal punto di vista elettrico sono interruttori ed inoltre che la loro caratteristica meccanica impone che lo stato dell’interruttore ritorni al suo punto di equilibrio quando lo si rilascia. Ci sono sia pulsanti normalmente aperti (NO, normally open) che normalmente chiusi (NC, normally closed), oltre ad interruttori che espongono entrambi gli stati; in ogni caso, se sono momentanei, il circuito viene aperto o chiuso solo finchè viene mantenuta la pressione su di esso. I più comuni nei progetti arduino sono push button NO, ossia sono pulsanti che chiudono il circuito solo quando li si preme e riaprono il circuito appena li si rilascia.
Questi pulsanti hanno 4 piedini e non 2 come ci si potrebbe aspettare, ma è solo per questioni meccaniche: poggiando su 4 piedini potete premerli senza problemi. I 2 piedini sullo stesso lato sono sempre connessi tra loro (pin “a” e “c” dell’immagine), mentre i piedini appartenenti al lato opposto si connettono in base allo stato dell’interruttore. Quindi quando li montate fate attenzione a ruotarli nel verso corretto come indicato nel relativo datasheet. Se avete dubbi, un multimetro può aiutarvi a chiarire quale sia il lato giusto con la funzione “corto circuito”.
Se stavate pensando di collegare semplicemente al Vcc da un alto dell’interruttore ed un pin digitale dall’altra, sappiate che così non può funzionare. Infatti, quando il pulsante è aperto, il pin arduino si troverebbe sconnesso sia dal ground che dal vcc, ed il suo valore logico fluttuerebbe in balia delle interferenze elettriche. Che il circuito sia aperto o chiuso, il pin deve comunque risultare connesso. Vediamo quindi come fare.
Ci sono due modi per usare un pulsante con Arduino, in pull-up od in pull-down; nel primo caso il pin di INPUT sarà in stato LOW a pulsante rilasciato e HIGH a pulsante premuto, sarà il contrario nel caso del pull-down.
Nello schema a fianco vediamo un esempio di collegamento di un pulsante in pull-up sul pin 4 di Arduino.
Quando l’interruttore è aperto, il pin D4 è connesso a ground tramite la resistenza da 10k; poichè non circola corrente, non c’è differenza di potenziale sulla resistenza e quindi l’input sarà quindi pilotato al livello LOW.
Quando si preme il pulsante, la corrente proveniente dal Vcc 5V fluirà attraverso l’interruttore, proseguirà attraverso la resistenza R1 da 10k ed andrà a ground. La corrente verso pin D4 è praticamente zero. Essendoci 5V di caduta di tensione su R1, possiamo anche calcolare quanta corrente passerà per il circuito quando si preme il pulsante: I= V/R = 5/10.000 = 0.5mA.
Poichè la caduta di tensione è totalmente a cavallo di R1, il pin D4, posto tra lo switch e la resistenza, andrà a livello HIGH di 5V.
Lo schema in pull-down è analogo: resistenza R1 e pulsante si scambiano di posto. Poichè la corrente non può fluire attraverso il pin di input, su R1 non c’è caduta di potenziale (V = RI, con I~0 -> V~0) ed il pin risulta quindi HIGH; con il pulsante premuto, si chiude il circuito tra tra Vcc e Ground, sulla resistenza vengono quindi imposti 5v di potenziale ed il pin D4, trovandosi dalla parte del ground, diventa LOW.
In questo tutorial useremo lo schema pull-up per i nostri push button. Sulla breadboard possiamo vedere implementato lo stesso schema pull-up. Quando il pulsante non è premuto sulla resistenza non scorre corrente e quindi non c’è differenza di potenziale tra il GND ed il pin4. Premendo il pulsante, la corrente scorre dal Vcc al GND del rail inferiore generando la differenza di potenziale a cavallo della resistenza e portando così a HIGH il pulsante a cui è collegato il cavetto che porta al pin4.