Un progetto Arduino Come realizzare ornamenti di luci natalizie appariscenti

Un progetto Arduino Come realizzare ornamenti di luci natalizie appariscenti / Fai da te

Questa è la prossima parte della nostra serie di apprendimento su Arduino, e questa volta impareremo e useremo Array fare un piccolo ornamento per l'albero di Natale con varie sequenze lampeggianti. Questo sarebbe un progetto ideale per tenere occupati i bambini se ti piacerebbe insegnare loro le saldature di base: basta montare i LED su un pezzo di carta e ottenere energia da una batteria standard da 9V.

È anche una lezione chiave nella programmazione per principianti di Arduino, anche se non hai intenzione di usarlo come ornamento, ti consiglio caldamente di crearlo in ogni caso.

Nota: questo è un tutorial di livello principiante e certamente non riusciremo a superare nessun nuovo terreno - è? solo un dispositivo per insegnare i concetti di utilizzo Array e Per i loop trattare con a numero elevato di LED (o altri dispositivi di output).

Se non lo hai già, ora sarebbe un buon momento per seguire insieme agli altri articoli della serie:

  • Cosa è Arduino e cosa puoi fare con esso Cosa è Arduino e cosa puoi fare con esso? Cosa è Arduino e cosa puoi fare con esso? L'Arduino è un eccezionale dispositivo elettronico, ma se non ne hai mai usato uno prima, cosa sono esattamente e cosa puoi fare con uno? Leggi di più ?
  • Che cos'è un kit di avvio Arduino e cosa contiene? Cosa è incluso in un kit di avvio Arduino? [MakeUseOf Explains] Cosa è incluso in un Arduino Starter Kit? [MakeUseOf Explains] Ho già introdotto l'hardware open source Arduino qui su MakeUseOf, ma non avrai bisogno di altro che l'effettivo Arduino per crearne qualcosa e iniziare davvero. I "kit di avvio" Arduino sono ... Leggi di più
  • Altri componenti fantastici da acquistare con il kit di avvio 8 Altri componenti fantastici per i tuoi progetti Arduino 8 Altri componenti fantastici per i tuoi progetti Arduino Quindi, stai pensando di ottenere un kit di avvio Arduino, ma ti chiederai se alcuni LED e resistori di base saranno abbastanza per tenerti occupato per il weekend? Probabilmente no. Ecco altri 8 ... Leggi altro
  • Iniziare con il kit di avvio Arduino? Installazione dei driver e configurazione della scheda e della porta Guida introduttiva di Arduino Starter Kit - Installazione dei driver e configurazione della scheda e della porta Guida introduttiva di Arduino Starter Kit - Installazione dei driver e configurazione della scheda e della porta Quindi, hai acquistato te stesso uno starter kit Arduino, e possibilmente alcuni altri componenti casuali - ora cosa? In che modo inizi a programmare questa cosa di Arduino? Come si imposta ... Per saperne di più
  • Fritzing, uno strumento gratuito per disegnare diagrammi circuitali Fritzing - Lo strumento definitivo per disegnare progetti elettronici [Cross Platform] Fritzing - Lo strumento definitivo per disegnare progetti elettronici [Cross Platform] Nonostante suoni come un alcopop, Fritzing è in realtà un incredibile pezzo di software gratuito che puoi utilizzare per creare diagrammi di circuiti e componenti da utilizzare con schede elettroniche di prototipazione rapida come il fantastico Arduino open source ... Continua a leggere
  • Uno sguardo da vicino sulla struttura di un'app Arduino e sull'esempio del programma Blink Primi passi con Arduino: uno sguardo da vicino sul circuito e la struttura di un programma Primi passi con Arduino: uno sguardo più attento al circuito e alla struttura Di un programma L'ultima volta che ti ho lasciato, hai configurato Arduino per funzionare con Mac o Windows e dopo aver caricato una semplice app di test che ha lampeggiato il LED di bordo. Oggi ho intenzione di spiegare il codice ... Per saperne di più

Per questo progetto, avrai bisogno di 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 da poco e che ho illustrato in questo tutorial, offre un ottimo rapporto qualità-prezzo e ha più LED e resistori di quanti ne avrai mai bisogno, oltre a venire con una breadboard pulita e una custodia Arduino per mantenere le cose ordinato.

Ecco la cosa finale:

E un video di esso in azione.

Ecco una vista del cablaggio di Fritzing. È molto semplice: basta collegare il cavo positivo dei LED ai pin 2-> qualunque (fino al pin 13) e collegare le gambe negative a terra in linea con un resistore. Il valore che ho usato qui è 560 Ohm. Questo è per il cablaggio.

Dal punto di vista del software, pensa a come potresti scrivere su tutti questi LED nel codice. Potresti andare in questo modo:

int led1 = 2; // primo LED sul pin 2 int led2 = 3; // second on 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 vederlo con 9 LED, questo diventerà presto stancante. La risposta sta con Array, che se non riesci a ricordare la nostra programmazione 101 sui tipi di dati di base Le basi della programmazione computerizzata 101 - Variabili e tipi di dati Le basi della programmazione computerizzata 101 - Variabili e tipi di dati Avendo introdotto e parlato un po 'di programmazione orientata agli oggetti prima e da dove deriva il suo omonimo , Ho pensato che fosse ora di passare attraverso le basi assolute della programmazione in un modo specifico non linguistico. Questo ... Leggi di più - sono fondamentalmente solo elenchi.

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

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

Le parentesi quadre indicano che i? Leds? la variabile sarà un schieramento. Le parentesi graffe racchiudono l'elenco dei numeri di pin che il nostro array terrà.

Ora, per usare una matrice, dobbiamo affrontarla con il numero di indice. Il indice inizia da 0, e quindi andrà 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]

Che nel nostro caso, prenderebbe il numero 2, perché è quello che? S all'indice 0 nel nostro array.

Stai seguendo fino ad ora? Grande. Questo non è sufficiente per noi, ma abbiamo anche bisogno di un modo per scorrere su ogni elemento del nostro array LED. Per questo, useremo un per ciclo. La sintassi per farlo è così:

per (variabile iniziale, condizione sotto la quale ripetiamo di nuovo, passare alla variabile ogni iterazione)

Per esempio:

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

Che dice

  • inizia questo ciclo con una variabile, io, che ha un valore di zero
  • continua il ciclo solo mentre io 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 pratica, il ciclo si ripeterà tutte le volte che abbiamo i LED, e ogni volta che viene ripetuto avremo una variabile, io, che possiamo usare comunque ci piace.

Useremo questa struttura due volte per iniziare. Una volta all'interno della funzione di setup, tutti i nostri pin diventano in modalità output, come questo:

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 possiamo fare esattamente la stessa cosa nel ciclo del programma principale per accendere ogni LED in sequenza:

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

Prova questo. Puoi scaricare il codice completo per il progetto di oggi da qui se preferisci non ripeterlo di nuovo (anche se ti incoraggio a, dato che aiuta il processo di apprendimento).

Ok, ora abbiamo una sequenza di illuminazione abbastanza noiosa. Programmiamo un altro. Solo per divertimento, rendiamolo completamente casuale. Sostituisci il codice del loop principale con questo:

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

Invece di usare un ciclo 'for' per iterare su ciascun LED, selezioniamo invece un numero casuale da 0-9, e lampeggiano su.

Lo lascerò lì per oggi, perché ora dovresti essere armato di conoscenze sufficienti per programmare tutte le nuove sequenze e sperimentare i loop. Per dimostrare quanto sia facile tutto ciò, ho sfidato mia moglie a pensare a una sequenza che le piacerebbe vedere, e poi ci è riuscita?lei a programmarlo da sola, dato solo il codice e le lezioni che hai avuto finora. L'ha inventato, quindi vedi se riesci a farlo per i compiti!

Domande, suggerimenti, problemi - per favore mettiti in contatto nei commenti.

Scopri di più su: Arduino.