Annuncio pubblicitario

luci di natale di arduinoQuesta è la parte successiva della nostra serie di apprendimento su Arduino, e questa volta noi? imparerò a conoscere e utilizzare Array per realizzare un piccolo ornamento per albero di Natale con varie sequenze lampeggianti. Questo sarebbe un progetto ideale per tenere occupati i bambini se vuoi insegnare loro la saldatura di base - basta montare i LED su un pezzo di carta e puoi ottenere energia da una batteria standard da 9v.

È anche una lezione chiave nella programmazione di Arduino per principianti, anche se se non hai intenzione di usarlo come ornamento, ti consiglio vivamente di farlo comunque.

Nota: questo è un tutorial per principianti e sicuramente abbiamo vinto? sta aprendo un nuovo terreno - vero? S? solo un dispositivo per insegnare i concetti di utilizzo Array e Per i loop trattare con a gran numero di LED (o altri dispositivi di output).

Se non hai rifugio? Già, ora sarebbe un buon momento da seguire insieme agli altri articoli della serie:

  • Che cos'è Arduino e cosa puoi farci
    instagram viewer
    Che cos'è Arduino e cosa puoi farci?L'Arduino è un piccolo dispositivo elettronico straordinario, ma se non ne hai mai usato uno prima, esattamente cosa sono e cosa puoi fare con uno? Leggi di più ?
  • Cos'è uno Starter Kit Arduino e cosa contiene? Cosa è incluso in uno Starter Kit Arduino? [MakeUseOf Explains]In precedenza ho introdotto l'hardware open-source Arduino qui su MakeUseOf, ma avrai bisogno di qualcosa di più del semplice Arduino per costruirne qualcosa e iniziare davvero. Gli "starter kit" di Arduino sono ... Leggi di più
  • Componenti più interessanti da acquistare con lo Starter Kit 8 componenti più interessanti per i tuoi progetti ArduinoQuindi, stai pensando di ottenere uno starter kit Arduino, ma ti stai chiedendo se alcuni LED e resistori di base saranno sufficienti per tenerti occupato per il fine settimana? Probabilmente no. Eccone altri 8 ... Leggi di più
  • Per iniziare con il tuo Starter Kit Arduino? Installazione dei driver e impostazione della scheda e della porta Guida introduttiva al kit iniziale Arduino - Installazione driver e impostazione della scheda e della portaQuindi, ti sei comprato un kit di avvio Arduino e forse altri componenti casuali interessanti - e adesso? Come inizi davvero a programmare questa cosa di Arduino? Come lo configuri ... Leggi di più
  • Fritzing, uno strumento gratuito per disegnare schemi elettrici Fritzing: lo strumento ideale per disegnare progetti elettronici [Cross Platform]Nonostante sembri un alcopop, Fritzing è in realtà un incredibile pezzo di software gratuito che puoi usare per creare schemi circuitali e di componenti da utilizzare con schede elettroniche a prototipazione rapida come il fantastico open source Arduino ... Leggi di più
  • Uno sguardo più da vicino alla struttura di un'app Arduino e al programma Blink di esempio Primi passi con Arduino: uno sguardo più da vicino al circuito e alla struttura di un programmaL'ultima volta che ti ho lasciato dopo aver configurato Arduino per funzionare con Mac o Windows e aver caricato una semplice app di prova che ha fatto lampeggiare il LED di bordo. Oggi spiegherò il codice ... Leggi di più

Per questo progetto, tu? Ne avrò bisogno almeno 8 o 9 LED in rosso o verde, a resistore per ciascuno di essi, a tagliere e alcuni cavi di collegamento. Lo starter kit di Ooomlout, che ho acquistato di recente e illustrato in questo tutorial, offre un ottimo rapporto qualità-prezzo e ha più LED e resistori di te? Ne avremo mai bisogno, oltre a venire con una tagliere ordinata e una custodia Arduino per mantenere le cose in ordine.

Qui? s l'ultima cosa:

luci di natale di arduino

E un video in azione.

Qui? s una vista del cablaggio di Fritzing. E? s molto semplice: basta collegare il cavo positivo dei LED ai pin 2-> qualunque (fino al pin 13) e collegare le gambe negative al terreno in linea con una resistenza. Il valore io? qui usato è di 560 Ohm. Quella? s per il cablaggio.

luci di natale di arduino

Sul lato software, pensa a come potresti scrivere su tutti questi LED nel codice. Potresti farlo in questo modo:

int led1 = 2; // primo LED sul pin 2. int led2 = 3; // secondo sul pin 3. // etc etc void loop () {digitalWrite (led1, HIGH); ritardo (100); digitalWrite (led1, LOW); ritardo (100); digitalWrite (led2, HIGH); // eccetera. }

Dovresti essere in grado di vedere che con 9 LED, questo sarà rapidamente stancante. La risposta è Array, che se puoi? non ricordo il nostro Programmazione 101 su tipi di dati di base Nozioni di base sulla programmazione al computer 101 - Variabili e tipi di datiDopo aver introdotto e parlato un po 'della programmazione orientata agli oggetti prima e dove ha preso il nome viene da, ho pensato che fosse tempo di passare attraverso le basi assolute della programmazione in uno specifico non linguistico modo. Questo... Leggi di più - sono fondamentalmente solo elenchi.

La sintassi è simile a questa (posizionala come prima riga nel codice):

int leds [] = {2,3,4,5,6,7,8,9,10};

Le parentesi quadre indicano che i? Led? sarà una variabile Vettore. Le parentesi graffe racchiudono l'elenco dei numeri di pin che il nostro array conterrà.

Ora, per usare un array, dobbiamo affrontarlo con il numero indice. Il l'indice inizia da 0e andrà quindi sempre fino a 1 in meno rispetto al numero totale di cose al suo interno (quindi con 9 articoli, l'ultimo avrebbe un indice di 8).

Lo scrivi così:

led [0]

Quale nel nostro caso, prenderebbe il numero 2, perché quello? s cosa? s all'indice 0 nel nostro array.

Stai seguendo finora? Grande. Solo questo non lo è? ma abbastanza per noi - abbiamo anche bisogno di un modo per iterare su ogni elemento del nostro array di LED Per questo, useremo un per loop. La sintassi per farlo è così:

per (variabile iniziale; condizione in cui ripetiamo ancora; cambia in variabile ogni iterazione)

Per esempio:

per (int i = 0; i <9; i ++)

Che dice

  • avvia questo ciclo con una variabile, io, che ha un valore di zero
  • continua il ciclo solo mentre lo sono meno di 9? (quindi: 0,1,2,3,4,5,6,7,8)
  • ogni volta, aggiungi 1 a i (i ++ è un modo breve per dire i = i + 1)

Quindi, in sostanza, il loop verrà ripetuto tutte le volte che abbiamo i LED, e ogni volta? s ripetuto avremo una variabile, io, che possiamo usare come ci piace.

Noi? Utilizzerò questa struttura due volte per cominciare. Una volta dentro la funzione di impostazione, tutti i nostri pin passano alla modalità di uscita, in questo modo:

void setup () {for (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }

Riesci a vedere cosa abbiamo fatto lì? Invece di scrivere 9 righe di codice per dichiarare ogni singolo pin come output, creiamo un ciclo "for" per ripetersi 9 volte, ogni volta impostando un altro pin.

Ora dovresti essere in grado di vedere come potremmo fare esattamente la stessa cosa nel loop del programma principale per accendere ogni LED in sequenza:

void loop () {for (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); ritardo (100); digitalWrite (leds [i], LOW); } }

Prova questo. Puoi scarica il codice completo per il progetto di oggi da qui se tu? Preferirei non scriverlo di nuovo (anche se ti incoraggio a farlo, poiché aiuta il processo di apprendimento).

Bene, ora abbiamo una sequenza di illuminazione abbastanza noiosa. Permettere? s programmane un altro. Solo per divertimento, lascia? lo rendono completamente casuale. Sostituisci il codice del ciclo principale con questo:

void loop () { int randomLed = random (0,8); digitalWrite (leds [randomLed], HIGH); ritardo (50); randomLed = random (0,8); digitalWrite (leds [randomLed], LOW); }

Invece di utilizzare un ciclo "for" per iterare su ciascun LED, scegliamo invece un numero casuale da 0-9 e lo accendiamo.

Lo lascerò lì per oggi perché ora dovresti essere armato con abbastanza conoscenze per programmare tutte le nuove sequenze e sperimentare i loop. Per dimostrare quanto sia facile tutto questo, ho sfidato mia moglie a pensare a una sequenza lei? ti piacerebbe vedere, e poi ottenuto?lei a programmarlo da sola, dato solo il codice e le lezioni tu? ho avuto finora. Ne è venuta fuori, quindi vedi se riesci ad abbinarlo per i compiti!

Domande, suggerimenti, problemi - si prega di mettersi in contatto nei commenti.

James ha una laurea in Intelligenza Artificiale ed è certificato CompTIA A + e Network +. È lo sviluppatore principale di MakeUseOf e trascorre il suo tempo libero giocando a paintball e giochi da tavolo VR. Costruisce PC da quando era un bambino.