Nel mio ultimo tutorial, ho spiegato perché è facile lavorare su progetti elettronici con Arduino. In questo tutorial userò una scheda Arduino per realizzare un circuito semplice, in grado di accendere una luce LED. Usando un altro codice base farò lampeggiare la stessa luce LED. Infine, aggiungerò un pulsante e lo useremo per accelerare il lampeggio.
Alcuni dei diagrammi in questo articolo sono stati sviluppati utilizzando il programma Fritzing.
In questo tutorial userò i seguenti componenti:
Puoi acquistare questi articoli tramite un negozio di elettronica locale, come Fry's (se vivi negli Stati Uniti) o via Internet dal sito Web di Arduino, Amazon, Little Bird Electronics o anche eBay.
In alternativa, puoi scegliere una di queste altre schede Arduino per seguire questo tutorial:
Altre schede Arduino o schede compatibili di terze parti potrebbero funzionare allo stesso modo. Tuttavia, potrebbero richiedere un connettore USB diverso. Assicurati che la tua scheda Arduino possa collegarsi al tuo computer usando un cavo USB adatto.
Inoltre, assicurarsi di aver scaricato e installato la versione più recente dell'IDE di Arduino sul computer. L'installazione dell'IDE di Arduino potrebbe richiedere alcuni passaggi in più sui computer Windows poiché è necessario installare alcuni driver. Per ulteriori istruzioni, seguire le guide di installazione sul sito Web di Arduino.
Ci si potrebbe chiedere come accenderemo una luce quando non ne abbiamo inclusa una nella lista dei componenti? Questo è facile! Le schede Arduino sono solitamente dotate di un LED incorporato, che possiamo utilizzare nei nostri progetti. Per mantenere il nostro circuito il più semplice possibile, useremo questo LED.
Il nostro codice funzionerà con la luce contrassegnata dalla lettera L accanto ad essa.Per iniziare, collega la tua scheda Arduino al tuo computer usando il cavo USB appropriato. Noterai che una o più luci possono accendersi momentaneamente o permanentemente. Arduino Uno ha quattro luci LED integrate. Se la tua scheda ha più di un LED, le spie lampeggianti indicano che è collegato a una fonte di alimentazione e si sta avviando. Ci vogliono circa cinque secondi prima che Arduino sia pronto per interagire con esso.
Avvia l'IDE Arduino sul tuo computer. Ti verrà presentato uno spazio di lavoro vuoto in cui dovrai scrivere il codice necessario per programmare la tua scheda Arduino.
Successivamente, è necessario comunicare all'IDE di Arduino la scheda a cui ci si connetterà. Dal menu, selezionare Strumenti> Scheda, e quindi seleziona la tua scheda Arduino dall'elenco. Se hai scelto di utilizzare una scheda Arduino ufficiale, devi selezionarne il nome. Le schede di terze parti sono in genere equivalenti a un'altra scheda Arduino ufficiale. Se sai quale scheda è, poi vai avanti e seleziona quella dalla lista. Altrimenti, fai riferimento al suo manuale per capire quale modello dell'elenco dovrebbe funzionare con la tua scheda specifica.
Infine, devi selezionare la porta giusta per la comunicazione con la tua scheda Arduino. Ancora una volta dal menu, vai a Strumenti> Porta seriale, e selezionare la porta seriale corretta. Su Mac, la porta seriale corretta è spesso elencata come /dev/tty.usbmodem1421
o simili. Su Windows, la connessione dovrebbe essere elencata come COM
porta.
Arduino è dotato di molti connettori di input e output diversi, che chiameremo Pins IO. In questo momento, vogliamo utilizzare un pin digitale IO per istruire la luce a LED per accendersi. Poiché utilizziamo anche la luce LED integrata, il pin IO appropriato è già stato deciso per noi dai produttori di Arduino. È il pin 13, che, in base alla progettazione, è stato collegato alla luce LED integrata.
Copia il seguente codice e incollalo nel tuo IDE Arduino:
int led_pin = 13; void setup () pinMode (led_pin, OUTPUT); void loop () digitalWrite (led_pin, ALTO);
Nel codice, ho fatto uso di due funzioni di Arduino: pinMode (numero_pin, modalità)
e digitalRead (numero_pin, valore)
.
Chiamerò il pinMode ()
funzione dentro impostare()
per istruire Arduino a trattare il suo pin-13 come output. Quindi chiamando il digitalWrite ()
funzione dentro ciclo continuo()
Posso attivare ALTA
segnale sul pin-13 che accende la luce LED.
Clicca sul Caricare pulsante per inserire il codice sopra nella tua scheda Arduino. A condizione che sia selezionata la scheda Arduino corretta e la porta seriale, dovresti vedere una barra di avanzamento seguita da a Fatto caricamento Messaggio.
Mentre il codice viene caricato, è possibile che lampeggino luci diverse, il che indica una comunicazione riuscita tra il PC e la scheda Arduino. A questo punto, la luce LED integrata dovrebbe essere accesa permanentemente.
Hai completato l'equivalente di Arduino di "Hello World". Ora farai quella luce lampeggiante introducendo il ritardo()
funzione nel codice precedente. Il ritardo()
la funzione accetta un valore intero, uguale a un intervallo di tempo in millisecondi. 1000 millisecondi equivalgono a un secondo.
int delay_value = 1000; int led_pin = 13; void setup () pinMode (led_pin, OUTPUT); void loop () digitalWrite (led_pin, ALTO); ritardo (delay_value); digitalWrite (led_pin, LOW); ritardo (delay_value);
Il ritardo()
la funzione mantiene accesa la luce del LED e la spegne anche per un secondo durante ogni iterazione del ciclo continuo()
funzione. Come il ciclo continuo()
la funzione è ripetuta perpetuamente, questo codice accende e spegne la luce LED ripetutamente.
Usando un diagramma di onde digitali, posso spiegare vagamente come è cambiato il comportamento originale. Prima di introdurre la funzione di ritardo nella fase tre, stavo producendo un'onda digitale che somigliava al diagramma, sopra. Ogni ciclo di ogni funzione loop () è stato impiegato per mantenere accesa la luce del LED.
Usando la funzione delay (), il nostro codice divide ciascun ciclo in due parti, rendendo ogni iterazione dura per due secondi. Durante il primo secondo il LED si accende e, durante il secondo successivo, si spegne.
Questa figura mostra come viene utilizzata la funzione delay () per mantenere lo stato corrente.Fino a questo punto, il comportamento di questo progetto Arduino è stato ben guidato dal codice che abbiamo scritto. Tuttavia, una volta caricato e funzionante, non abbiamo alcun modo di interagire con questo circuito elettronico. Questo è molto statico e ho intenzione di cambiarlo aggiungendo un pulsante che mi permetterà di cambiare la velocità lampeggiante. In questo passaggio, avrò bisogno di usare a tagliere. Questo è un buon momento per dare un'occhiata a cos'è una breadboard e come può essere usata.
Una breadboard è una scheda di prototipazione senza saldatura utilizzata per realizzare circuiti elettronici temporanei, principalmente per sperimentare diversi progetti di circuiti stampati.
Le moderne breadboard sono costituite da un solido pezzo di plastica perforata, con molte clip di rame sotto la sua superficie per realizzare collegamenti elettrici. I numerosi fori sulla superficie di queste schede consentono l'inserimento di diversi componenti elettronici senza la necessità di saldare in posizione.
Le breadboard comuni hanno due colonne, ciascuna con le proprie file di cinque fori. Qualsiasi buca è collegata a tutti gli altri fori nella stessa fila ma non a nessuno dei fori nella colonna adiacente. In altre parole, se due fili non sono posizionati nella stessa riga della stessa colonna, i due non sono collegati tra loro. Questa configurazione ci consente di condividere una singola connessione da un componente attraverso altri quattro punti di connessione nella stessa riga.
La ragione per avere due o più colonne sulla stessa breadboard è consentire il collegamento di più circuiti integrati (IC). I circuiti integrati sono solitamente collegati in entrambe le colonne di una breadboard perché hanno più di due pin su entrambi i lati, come illustrato nello schema seguente.
IC a 40 pin collegato a una breadboard.Su entrambi i lati della maggior parte delle schede, ci sono lunghe strisce che vengono utilizzate per condividere il potere. Queste strisce sono spesso indicate come strisce di bus o barre di alimentazione, poiché corrono lungo l'intera lunghezza della tavola. I power rail su alcune schede ti permetteranno di connettere sia le connessioni positive che quelle di terra. A differenza delle normali file, tutti i fori lungo la lunghezza della scheda sono collegati tra loro.
Le rotaie di potenza sono solitamente contrassegnate da linee rosse e blu che percorrono l'intera lunghezza del tabellone.Quando acquisti una breadboard, è una buona idea scegliere il tipo con scanalature su entrambi i lati della tavola. Queste scanalature possono essere utilizzate per collegare più breadboard per creare uno spazio di lavoro più ampio. Una breadboard di buona qualità è contrassegnata da numeri e lettere che facilitano l'identificazione di ogni riga e colonna.
Inizia posizionando il pulsante e collegandolo con i ponticelli di potenza dalla scheda Arduino. Arduino Uno può emettere due livelli di potenza, 3 volt e 5 volt. Per questo circuito, avremo bisogno di usare la guida 5V. Il motivo per cui utilizzeresti uno sull'altro dipende dai componenti che stai per collegare. Alcuni componenti potrebbero richiedere una tensione di alimentazione più bassa per funzionare, quindi l'uscita 3V.
Circuito con Arduino e breadboardNello schema, sopra, abbiamo un circuito completo. Abbiamo collegato i piedini superiori del pulsante sia al pin 5V, all'arduino e al resistore 10K. Questo poi si connette al pin di terra (GND) sul nostro Arduino. Il nostro terzo filo (in giallo) si connette al pin-2 digitale e porterà il segnale ON alla scheda Arduino.
Lo scopo di un resistore è di rallentare la corrente elettrica, poiché la corrente passa attraverso di essa, limitando così la quantità di corrente che fluisce attraverso il circuito. Ciò si ottiene realizzando resistori da materiali con una bassa proprietà conduttiva. La resistenza è misurata in ohm e può essere determinato dalla seguente equazione:
resistenza (in ohm) = potenza o tensione (in volt) / corrente (in ampere)Supponiamo di voler collegare una luce LED a una fonte di alimentazione a 9 V, ma il LED può tollerare solo 30 milliampere di corrente. In base all'equazione di cui sopra, sarà necessario utilizzare un resistore da 300 Ohm per limitare la corrente che scorre attraverso la luce LED.
9 volt / 0,03 milliamplificatori = 300 ohmEsistono tre categorie principali di resistori:
Sebbene i resistori servano a limitare il flusso di corrente, ci sono diversi tipi di resistori in ciascuna di queste tre categorie per diverse applicazioni.
La maggior parte dei resistori fissi sono contrassegnati da bande colorate per aiutarci a risolvere la loro resistenza. Da sinistra, le prime due bande indicano la prima e la seconda cifra del valore di resistenza. La terza banda dà il fattore di moltiplicazione. Infine, la quarta banda dà la tolleranza del resistore.
Codici colore resistoreDai colori sul resistore sopra, possiamo elaborare il seguente:
Ecco la tabella completa dei colori. Per ulteriori informazioni, fare riferimento a Wikipedia sui codici colore dei resistori.
Colore | cifra | Moltiplicatore | Tolleranza |
Nero | 0 | x10 ^ 0 | ± 1% |
Marrone | 1 | x10 ^ 1 | ± 2% |
Rosso | 2 | x10 ^ 2 | - |
arancia | 3 | x10 ^ 3 | (± 5%) |
Giallo | 4 | x10 ^ 4 | ± 5% |
verde | 5 | x10 ^ 5 | ± 0,25% |
Blu | 6 | x10 ^ 6 | ± 10% |
Viola | 7 | x10 ^ 7 | ± 1% |
Grigio | 8 | x10 ^ 8 | ± 0,05% (± 10%) |
bianca | 9 | x10 ^ 9 | - |
Oro | - | x10 ^ -1 | ± 5% |
Argento | - | x10 ^ -2 | ± 10% |
Nessuna | - | - | ± 20% |
Ho collegato il cavo del segnale giallo dal pin digitale 2 a una gamba del pulsante. La stessa gamba del pulsante, sul lato opposto, si connette attraverso il resistore 10K a terra per formare un circuito completo. Quando il pulsante non viene premuto, la corrente di viaggio viene letta da Arduino come BASSA.
Una volta premuto il pulsante, una connessione tra il pin 2 e il positivo 5V verrà stabilita attraverso le gambe del pulsante. Poiché l'elettricità viaggerà sempre attraverso il percorso di minor resistenza, eviterà di attraversare il resistore e passerà attraverso il pin 2 che si tradurrà in una lettura ALTA dalla scheda Arduino.
Ora, finiamo il passaggio 4 e facciamo lampeggiare la luce del LED più velocemente quando premiamo il pulsante.
int delay_value = 1000; int led_pin = 13; int button_pin = 2; void setup () pinMode (led_pin, OUTPUT); pinMode (button_pin, INPUT); void loop () digitalWrite (led_pin, ALTO); ritardo (delay_value); digitalWrite (led_pin, LOW); ritardo (delay_value); int button_state = digitalRead (button_pin); if (button_state == HIGH) delay_value = 100; else delay_value = 1000;
Questa volta, il codice sta istruendo Arduino per trattare il suo pin-2 come una fonte di input chiamando il pinMode (button_pin, INPUT)
dentro il impostare()
funzione. Questo ci permette di leggere lo stato del pulsante più avanti all'interno del ciclo continuo()
funzione chiamando digitalRead (button_pin)
. Ottenere lo stato del pulsante ci consente di determinare se la funzione di ritardo debba essere chiamata con un valore inferiore.
Ora vai avanti e carica il codice sopra nel tuo Arduino, quindi premi il pulsante per vedere la luce LED lampeggiare più velocemente.
Se sei arrivato così lontano e il codice sopra riportato non funziona per te, ci potrebbero essere alcuni motivi per questo:
In questo tutorial, hai imparato alcune tecniche di base nell'uso di una scheda Arduino, una breadboard, resistori e pulsanti insieme all'IDE di Arduino. Hai anche imparato come ritardo()
la funzione può essere utilizzata per mantenere uno stato per un dato periodo di tempo.
Se hai domande su questo tutorial, ti preghiamo di lasciarli nella sezione commenti, sotto.