Buy from US Buy from UK Buy from DE   Buy from IT   Buy from FR   Buy from ES   Buy from JP

In questa lezione, mostreremo come utilizzare un modulo Button Switch a pulsante per accendere/spegnere un LED attraverso la tecnologia della programmazione grafica con  Arduino.

Sia il LED che il modulo Button Switch saranno collegati allo shield OSOYOO Magic I/O.   Qui, “I/O” si riferisce a INPUT e OUTPUT.  OSOYOO Magic I/O Shield è una scheda di estensione che può aiutare a collegare facilmente sensori, attuatori e porte di controllo dell’auto robot ai pin I/O di Arduino. Noi collegheremo il modulo LED alla porta D8 dello shield e il modulo Switch alla porta D2 dello shield.

Diremo ad Arduino che D8 sarà una porta OUTPUT che invierà il segnale per controllare il LED.   D2 è una porta INPUT che riceve il segnale di ingresso dal pulsante Switch.

Il modulo Button Switch è un dispositivo generatore di segnali. Quando il pulsante viene premuto, il pin SIG genererà un segnale di alta tensione, quando il pulsante viene rilasciato, il pin SIG genererà un segnale di bassa tensione.

Il modulo del LED sarà acceso quando il perno del SIG ottiene il segnale di alta tensione e si spegnerà quando il perno del SIG ottiene il segnale di bassa tensione.

In primo luogo, si prega di collegare lo schermo Osoyoo Magic I/O alla scheda UNO. Poi collegare il modulo Button e LED alla porta D2 e D8 dello shield Magic I/O con un cavo PNP a 3 pin come di seguito:



Avviso: Togliere la batteria o scollegare l’adattatore di alimentazione quando si carica il codice dello sketch su Arduino.

Puoi scaricare il codice direttamente, poi clicca su “Apri” in Mixly per scegliere il codice che hai scaricato:

Download Code

Oppure potete fare le seguenti operazioni:

Dopo aver completato il montaggio del circuito di cui sopra, connetti la scheda Arduino al tuo computer usando il cavo USB. Il LED verde di alimentazione (etichettato PWR) si accenderà.
Abbiamo imparato come far lampeggiare un LED nell’ultima lezione. Quindi in questa aggiungeremo un pulsante per controllare il LED on/off.

Per prima cosa, abbiamo bisogno di dichiarare una variabile per mostrare lo stato di Buttons. Trascinate un blocco Declare nella categoria Variables. Name questa variabile a Buttonstate, e selezionate il tipo a int.

Per assegnare inizialmente 0 al Buttonstate, trascinate fuori il blocco “0” (il primo blocco) in Math, e aggiungetelo dietro il Buttonstate. Il valore nel blocco può essere cambiato, qui usiamo il suo valore predefinito “0”.

Ora abbiamo bisogno di trovare un modo per ottenere il valore dalla porta D2 e darlo alla variabile Buttonstate. Per fare questo, cliccate di nuovo sulla categoria Variables, trascinate un blocco Buttonstate nell’area vuota come nell’immagine seguente:

Poi andate nella categoria In/Out, trascinate un blocco DigitalRead e rilasciatelo dietro il blocco Buttonstate e combinateli insieme. Ora dovete impostare il PIN# a 2, il che significa che assegnerete il segnale di ingresso dal PIN# 2 alla variabile Buttonstate.

Ora spieghiamo la nostra logica di controllo ad Arduino. Vogliamo accendere il LED quando premiamo il pulsante e spegnere il LED quando il pulsante viene rilasciato. Usiamo i blocchi grafici per dare la nostra logica ad Arduino:

Per prima cosa, trasciniamo un blocco if do nella categoria Control proprio sotto il blocco Buttonstate come nella seguente immagine.

Abbiamo anche bisogno di aggiungere un else sotto-blocco a questo blocco if do. Per fare questo, basta cliccare sull’icona di impostazione all’interno del blocco if do, trascinare fuori un altro sotto-blocco e collegarlo al blocco if, poi cliccare nuovamente su setting per spegnere la finestra di impostazione.

Successivamente, dovremmo aggiungere il blocco logico di condizione nel blocco if do else di cui sopra.  Per fare questo, trascinate il primo blocco “=” nella categoria Logic, e fatelo agganciare sul lato destro dello blocco if come mostrato qui sotto.

Trascinate un blocco Buttonstate dalla categoria Variables e rilasciatelo nello slot di sinistra del blocco = come mostrato qui sotto.

Drag out the HIGH block in In/Out section, and drop it to the right slot of  the “=” block as showed below.

Ora, la struttura logica if else è completata.

Poi abbiamo bisogno di impostare l’azione quando Buttonstate è in situazioni HIGH.

Trascinate un blocco DigitalWrite dalla sezione In/Out e rilasciatelo sul lato destro dello slot do, quindi impostate PIN# su 8 e il valore Stat su HIGH come mostrato di seguito:

Poi abbiamo bisogno di impostare l’azione quando Buttonstate è in situazioni LOW.

Trascinate un altro blocco DigitalWrite dalla sezione In/Out e rilasciatelo sul lato destro di un altro slot else, quindi impostate PIN# su 8 e il valore Stat su LOW come mostrato di seguito:

L’intero programma è completo. Potete controllare il codice equivalente del linguaggio C di Arduino sulla barra di destra. La logica del nostro programma è molto semplice: Quando premiamo l’interruttore del pulsante sullo slot D2, la variabile Buttonstate di Arduino otterrà un valore HIGH. Quando Buttonstate è rilasciato, Buttonstate otterrà un valore LOW. Quando il valore Buttonstate è HIGH, allora Arduino darà a D8 una tensione HIGH e accenderà il LED, se il valore Buttonstate è LOW, allora D8 emetterà una tensione LOW e spegnerà il LED.

Fate clic su Save dopo che tutta la programmazione è stata fatta.
Seleziona il tipo di scheda e la porta seriale corretti e poi fai clic su Upload. Infine, lo stato cambierà in “Upload riuscito!” come mostrato qui sotto.

Ora, premete il pulsante e il modulo LED si accenderà. Quando l’interruttore viene rilasciato, il LED si spegne.

È possibile aggiungere più sensori LED e pulsanti in questo progetto utilizzare una logica simile a questo programma. L’interruttore del pulsante viene premuto, uno o due LED si accendono; Quando l’interruttore viene rilasciato, il LED si spegne.