Sommario:

Sequencer LED RGB programmabile (usando Arduino e Adafruit Trellis): 7 passaggi (con immagini)
Sequencer LED RGB programmabile (usando Arduino e Adafruit Trellis): 7 passaggi (con immagini)

Video: Sequencer LED RGB programmabile (usando Arduino e Adafruit Trellis): 7 passaggi (con immagini)

Video: Sequencer LED RGB programmabile (usando Arduino e Adafruit Trellis): 7 passaggi (con immagini)
Video: Midi lights using arduino 2024, Luglio
Anonim
Image
Image
Cablare la scheda driver
Cablare la scheda driver

I miei figli volevano strisce LED colorate per illuminare le loro scrivanie e io non volevo usare un controller di strisce RGB preconfezionato, perché sapevo che si sarebbero annoiati con gli schemi fissi che hanno questi controller. Ho anche pensato che sarebbe stata una grande opportunità creare uno strumento didattico per loro che potessero usare per affinare le abilità di programmazione ed elettronica che ho insegnato loro. Questo è il risultato.

Ti mostrerò come costruire questo semplice controller per strisce LED RGB programmabile utilizzando un Arduino Uno (o Nano), un Adafruit Trellis e una manciata di altre parti.

L'Adafruit Trellis è uno dei miei nuovi giocattoli preferiti di Lady Ada e del suo equipaggio. Prima di tutto, sono solo $ 9,95 per la scheda e altri $ 4,95 per il pad dei pulsanti in elastomero di silicone (prezzi al momento della stesura di questo documento). Questo è un ottimo affare per una matrice 4x4 a 16 pulsanti con capacità LED. Non viene fornito con alcun LED montato, è necessario fornirli, ma ciò ti dà la flessibilità di scegliere i colori che desideri (e riduce i costi e la complessità rispetto alla costruzione di LED indirizzabili). Per realizzare questo progetto come il mio, avrai bisogno di una manciata di LED da 3 mm. Ho usato 2 rossi, 2 verdi, 2 blu, 4 gialli e 6 bianchi.

Trellis utilizza I2C per comunicare, quindi richiede solo due pin I/O (dati e clock) per controllare 16 pulsanti e 16 LED.

Puoi fare la parte hardware di questo progetto su una piccola scheda prototipale, ed è così che ho realizzato il mio prototipo. Mi sono subito reso conto che avevo bisogno di qualcosa di più ordinato e più contenuto sulle loro scrivanie (un Arduino nudo e una scheda proto che sbattevano in giro sarebbero stati troppo fragili), quindi ho creato il mio scudo per guidare le strisce LED. Le istruzioni e i file per la costruzione dello scudo sono inclusi nell'ultimo passaggio.

Il driver utilizza tre MOSFET IRLB8721 e tre resistori. E, naturalmente, avrai bisogno di una striscia LED per guidare; praticamente qualsiasi semplice striscia LED RGB da 12 V andrà bene. Questi sono LED semplici, come SMD 5050, non fantasiosi indirizzabili individualmente (nessun NeoPixel, ecc.) - questo è un altro progetto! Hai anche bisogno di un alimentatore da 12 V abbastanza grande da pilotare il numero di LED che intendi utilizzare.

Quindi, per ricapitolare, ecco le esigenze hardware di base per questo progetto:

  • Un Arduino Uno o Nano (queste istruzioni sono per Uno con intestazioni femmina installate, ma Nano su una breadboard funziona bene) (Adafruit, Amazon, Mouser);
  • Una scheda Adafruit Trellis e una pulsantiera in silicone (Adafruit);
  • Tre MOSFET a canale N IRLB8721 (Adafruit, Amazon, Mouser);
  • Tre resistori da 1K (Amazon, Mouser);
  • Tre resistori da 220 ohm (Amazon, Mouser)
  • Una piccola scheda prototipo (la mia prima era di 1/4 - scegli qualsiasi dimensione con cui puoi lavorare comodamente) (Adafruit, Amazon);
  • Una striscia LED RGB da 12 V (SMD 5050) (Adafruit, Amazon);
  • Alimentazione a 12 V: scegli un wattaggio appropriato per il numero di LED che intendi pilotare.

Dichiarazione di non responsabilità sui requisiti: i collegamenti sopra riportati sono forniti per comodità dell'utente e non sono un'approvazione di alcun prodotto o fornitore; né traggo profitto da eventuali acquisti effettuati a questi link. Se hai dei fornitori che ti piacciono di più, supportali con ogni mezzo!

Iniziamo…

Passaggio 1: cablare la scheda driver

Cablare la scheda driver
Cablare la scheda driver

Ecco il circuito del driver LED. È molto semplice. Utilizza un MOSFET a canale N IRBLxxx per ciascun canale sulla striscia LED. La striscia LED è un anodo comune, il che significa che +12 V viene inviato alla striscia LED e i canali LED rosso, verde e blu sono controllati fornendo massa sulla rispettiva connessione alla striscia. Quindi, collegheremo il drain dei MOSFET ai canali di colore del LED e la sorgente a terra. Le porte saranno collegate alle uscite digitali Arduino e i resistori forniscono un pull-down che assicura che ogni MOSFET si accenda o si spenga completamente secondo necessità.

L'Arduino offre la modulazione della larghezza di impulso su alcune delle sue uscite digitali, quindi utilizzeremo quelle uscite (in particolare D9, D10, D11) in modo che l'intensità di ciascun canale di colore possa essere controllata.

Se sei confuso su cosa collegare e dove sui MOSFET IRLB8721, tieni uno in mano con la parte anteriore rivolta verso di te come mostrato nella foto sopra. Il pin a sinistra (pin 1) è il gate e si collegherà a un pin di uscita digitale Arduino e al resistore (l'altra estremità del resistore dovrebbe collegarsi a terra). Il pin al centro (pin 2) è lo scarico e si collega al canale colore della striscia LED. Il pin a destra (pin 3) è la sorgente ed è collegato a massa. Assicurati di tenere traccia di quale transistor si connette a quale canale di colore LED.

Non entrerò nei dettagli su come saldare le schede proto. Onestamente, lo odio e non sono bravo a farlo. Ma nel bene e nel male, funziona, ed è un modo rapido e sporco per ottenere un prototipo solido o una tantum. La mia prima scheda è mostrata qui.

Potresti anche creare un breadboard. Sarebbe certamente più veloce che saldare tutto su una scheda proto, ma meno permanente.

Una volta cablato il driver, collega gli ingressi del gate MOSFET ai pin di uscita digitale di Arduino: D9 per il canale verde, D10 per il canale rosso e D11 per il canale blu. Collega anche la striscia LED alla tua scheda proto.

Inoltre, assicurati che la tua scheda driver abbia una connessione separata dalla sua terra a uno dei pin di terra di Arduino.

Infine, per l'alimentazione del LED, collegare il cavo negativo (massa) dell'alimentazione a 12 V a una massa sulla scheda del driver. Quindi collega il cavo positivo dell'alimentazione a 12 V al cavo dell'anodo della tua striscia LED (questo è un filo nero sui miei cavi mostrato nell'immagine).

Alla fine, ho finito per progettare uno scudo per scheda PC che si monta su Uno e ha anche un supporto di montaggio per Trellis. Ciò ha fornito un prodotto finale molto più rifinito. Se vuoi farlo, puoi saltare l'uso della scheda proto come descritto qui e realizzare semplicemente la scheda scudo. Tutto è descritto nell'ultimo passaggio.

Passaggio 2: posizionare i LED sul traliccio

Metti i LED sul traliccio
Metti i LED sul traliccio

La scheda Trellis ha pad vuoti per LED da 3 mm che dovremo riempire. Nota attentamente i simboli sui pad: c'è un "+" molto sottile accanto al pad per designare il lato dell'anodo. Se stai tenendo la scheda in modo che il testo sia rivolto verso l'alto, c'è anche una notazione nella parte superiore e inferiore della scheda che avverte che gli anodi dei LED sono a sinistra.

Salda i tuoi LED da 3 mm alla scheda. Guardando la parte anteriore della lavagna, il testo con il lato destro rivolto verso l'alto, la posizione dell'interruttore/LED in alto a sinistra è n. 1, in alto a destra è n. 4, in basso a sinistra è n. 13 e in basso a destra è n. 16. Ecco i colori che ho usato in ogni posizione (e c'è un motivo, quindi ti consiglio di seguire il mio schema almeno per le prime due righe):

1 - rosso2 - verde3 - blu4 - bianco5 - rosso6 - verde7 - blu8 - bianco9 - bianco10 - bianco11 - giallo12 - giallo13 - bianco14 - bianco15 - giallo16 - giallo

Attribuzione CC: l'immagine Trellis sopra è di Adafruit e utilizzata con licenza Creative Commons -- Attribution/ShareAlike.

Passaggio 3: collega il traliccio ad Arduino

Collega il traliccio ad Arduino
Collega il traliccio ad Arduino

Il Trellis ha cinque pad di cablaggio, ma in questo progetto ne vengono utilizzati solo quattro. Trellis ha bisogno di SDA e SCL per comunicare con Arduino (usando I2C) e 5V e GND per l'alimentazione. L'ultimo pad, INT, non viene utilizzato. I pad Trellis appaiono su tutti e quattro i bordi del tabellone. Puoi usare qualsiasi set di pad che desideri.

Saldare un cavo di interconnessione solido ai pad 5V, GND, SDA e SCL. Quindi, collega il filo 5V al pin 5V su Arduino, il GND al pin di terra, il filo SDA ad A4 e il filo SCL ad A5.

Successivamente, accenderemo Arduino e caricheremo lo schizzo su di esso. Ora è un buon momento per mettere la pulsantiera in silicone sulla scheda Trellis. Si trova semplicemente sulla tavola (notare le "protuberanze" sul fondo del pad che si inseriscono nei fori sulla tavola), quindi potresti voler usare un paio di pezzi di nastro adesivo per tenere i bordi del pad sulla tavola per Ora.

Attribuzione CC: l'immagine del cablaggio Trellis sopra è una versione ritagliata di questa immagine di Adafruit e viene utilizzata sotto la licenza Creative Commons -- Attribution/ShareAlike.

Passaggio 4: scarica lo schizzo del progetto e caricalo su Arduino

Puoi scaricare lo schizzo dal mio repository Github per questo progetto.

Una volta ottenuto, aprilo nell'IDE di Arduino, collega l'Arduino utilizzando un cavo USB e carica lo schizzo su Arduino.

Se lo schizzo viene caricato e Trellis è collegato correttamente, uno qualsiasi dei pulsanti sul Trellis dovrebbe lampeggiare rapidamente tre volte quando viene premuto. Questa è un'indicazione che hai premuto un pulsante non valido, perché il sistema si presenta nel suo stato "off", quindi l'unico tasto valido è quello richiesto per accenderlo.

Per accendere il sistema, tenere premuto il pulsante in basso a sinistra (#13) per almeno un secondo. Quando rilasci il pulsante, tutti i LED dovrebbero accendersi brevemente, quindi le due righe inferiori si spengono, ad eccezione di #13 (in basso a sinistra). Il sistema è ora nello stato acceso e inattivo.

Puoi provare a utilizzare le prime due righe per illuminare e attenuare i canali LED come primo test. Se funziona, sei a posto per il passaggio successivo. In caso contrario, controlla:

  1. L'alimentatore LED è collegato e acceso;
  2. I MOSFET della scheda driver sono cablati correttamente. Se usi gli stessi IRLB8721 che ho usato io, controlla:

    • Gli ingressi del segnale della scheda driver (gate MOSFET, IRLB8721 pin 1) sono collegati ad Arduino D9=verde, D10=rosso, D11=blu (vedi nota sotto);
    • La striscia LED è collegata alla scheda driver e i canali colore LED sono collegati ai drain del MOSFET (pin 2 IRLB8721);
    • I pin sorgente MOSFET (pin 3 IRLB8721) sono collegati a massa sulla scheda driver;
  3. Collegamento a terra tra la scheda driver e il pin di massa di Arduino.

Nel passaggio successivo, giocheremo con alcune delle funzioni dell'interfaccia utente della pulsantiera.

NOTA: se il controller funziona ma i pulsanti di intensità non controllano i colori giusti, non preoccuparti e non ricablare! Basta entrare nello Sketch nell'IDE di Arduino e modificare le definizioni dei pin RED, GREEN e BLUE nella parte superiore del file.

Passaggio 5: funzioni di controllo di base

Funzioni di controllo di base
Funzioni di controllo di base

Ora che il sistema è acceso, possiamo giocare con alcuni dei pulsanti e fargli fare cose.

Come ho detto nel passaggio precedente, quando viene acceso, il sistema si presenta nel suo stato "inattivo". In questo stato, è possibile utilizzare i pulsanti sulle due righe superiori per aumentare e diminuire l'intensità del colore di ciascuno dei canali LED rosso, verde e blu. Se si utilizzano i pulsanti bianchi di aumento/diminuzione, il sistema aumenta o diminuisce l'intensità di tutti e tre i canali allo stesso modo e a livelli uguali.

Le due righe inferiori vengono utilizzate per riprodurre i pattern preimpostati. Questi modelli sono memorizzati nella EEPROM di Arduino. Quando lo schizzo viene eseguito per la prima volta, vede che la EEPROM non ha alcun modello memorizzato e memorizza una serie di modelli predefiniti. Successivamente, puoi modificare questi modelli e le tue modifiche vengono memorizzate nella EEPROM di Arduino, sostituendo il modello preimpostato. Ciò garantisce che i tuoi modelli sopravvivano alle interruzioni di corrente. La funzione di modifica è descritta nel passaggio successivo.

Per ora, premere brevemente uno dei pulsanti preimpostati (gli otto pulsanti nelle due righe inferiori) per eseguire il modello memorizzato per quel pulsante. Il pulsante lampeggia durante l'esecuzione del motivo. Per interrompere il motivo, premere di nuovo brevemente il pulsante del motivo. Mentre un pattern è in esecuzione, i pulsanti bianchi su/giù nelle righe superiori possono essere utilizzati per modificare la frequenza del pattern.

Se lasci il progetto da solo per alcuni secondi senza toccare alcun pulsante, noterai che i LED si attenuano. Questo è sia per il risparmio energetico che per evitare che il Trellis superi l'"atmosfera" che i LED stanno cercando di creare. Toccando un pulsante sul traliccio si riattiverà.

Per spegnere il sistema, tenere premuto il pulsante in basso a sinistra (#13) per uno o più secondi e rilasciarlo. Il traliccio e la striscia LED si spengono.

Passaggio 6: modifica dei motivi sulla tastiera

Modifica dei motivi sulla tastiera
Modifica dei motivi sulla tastiera

Come ho detto nel passaggio precedente, lo schizzo memorizza otto modelli predefiniti in EEPROM la prima volta che viene eseguito. È possibile modificare 7 di questi modelli in qualcos'altro se lo si desidera utilizzando la modalità di modifica dei modelli sulla pulsantiera.

Per accedere alla modalità di modifica del motivo, prima decidi per quale pulsante vuoi modificare il motivo. Puoi scegliere qualsiasi pulsante diverso dal pulsante in basso a sinistra. Accedere alla modalità di modifica del motivo premendo a lungo (tenere premuto per più di un secondo) sul pulsante del motivo scelto. Una volta rilasciato, il pulsante si illuminerà in modo fisso e le due righe superiori inizieranno a lampeggiare. Questo indica che sei in modalità di modifica.

La modalità di modifica inizia dal primo passaggio del motivo e continua fino a quando non si esce dalla modifica o si termina la modifica del 16° passaggio (16 passaggi max per motivo). Ad ogni passaggio, usa i pulsanti di intensità del canale nelle prime due righe per selezionare il colore che desideri per quel passaggio. Quindi premere brevemente il pulsante di preimpostazione del motivo per salvare quel colore e passare al passaggio successivo. Nell'ultimo passaggio, invece di premere brevemente, basta premere a lungo per uscire dalla modifica.

Dopo essere usciti dalla modifica del pattern, il pattern viene riprodotto automaticamente.

Questo è tutto! Ora hai un controller LED RGB che metterà in sequenza i modelli che puoi programmare tramite la tastiera. Puoi fermarti qui, o se vuoi costruire una versione più formale di questo progetto, continua con il resto dei passaggi.

Passaggio 7: hardware migliore: schermo e custodia per driver LED RGB

Image
Image
Hardware migliore: schermo e custodia per driver LED RGB
Hardware migliore: schermo e custodia per driver LED RGB
Hardware migliore: schermo e custodia per driver LED RGB
Hardware migliore: schermo e custodia per driver LED RGB

Una volta che ho avuto un prototipo funzionante, sapevo che non potevo lasciare un Arduino nudo e una scheda proto sulle scrivanie dei miei figli come soluzione permanente. Avevo bisogno di un recinto per il progetto. Ho anche deciso che avrei realizzato una scheda driver migliore e ho pensato che fosse l'occasione perfetta per creare il mio scudo.

Ho ripulito il mio schema cartaceo inserendolo in ExpressSCH, uno strumento gratuito offerto da ExpressPCB, un produttore di schede che offre brevi tirature economiche di piccole schede per PC. Uso ExpressPCB da oltre un decennio su progetti, ma usa tutti gli strumenti e il produttore che preferisci, con tutti i mezzi.

Ho aggiunto un paio di piccole funzionalità allo schema di base in modo che funzioni bene come scudo per questo progetto. Ho aggiunto i pad di cablaggio per collegare il traliccio, un jack di alimentazione, una lampada pilota e un connettore per la striscia LED. Ho anche aggiunto un punto per un condensatore attraverso l'alimentatore. Il circuito finale è mostrato qui.

Ho deciso che il potere per il progetto dovrebbe venire dallo scudo. I 12V forniti allo shield alimentano sia la striscia LED che l'Arduino. L'alimentazione ad Arduino viene fornita collegando l'ingresso di alimentazione al pin VIN di Arduino, che è bidirezionale (puoi alimentare l'Arduino su questo pin, o se colleghi l'alimentazione all'Arduino altrove, ti darà il alimentazione su questo pin). Il diodo di protezione D1 impedisce a qualsiasi alimentazione collegata direttamente ad Arduino (es. USB) di provare ad alimentare i LED.

Perché non usare il jack di alimentazione di Arduino e collegare lì solo 12V? Mentre avrei potuto fornire 12V al jack di alimentazione di Arduino e utilizzare il pin VIN per afferrare quella potenza per lo shield, ero preoccupato che il diodo D1 e le tracce di Arduino non sarebbero stati all'altezza delle alte correnti possibili nel pilotare il LED strisce. Quindi, ho deciso che il mio shield avrebbe assorbito l'alimentazione e fornito alimentazione all'Arduino. Avevo bisogno anche di 5 V per il Trellis, ma la regolazione dell'alimentazione a bordo dell'Arduino fornisce 5 V su diversi pin, quindi ne ho usato uno per il Traliccio. Questo mi ha risparmiato di mettere un circuito regolatore sullo scudo.

Ho quindi disposto il PCB. Ho usato alcune risorse che ho trovato per ottenere le misure esatte per il posizionamento dei pin per soddisfare le intestazioni su Arduino Uno. Un po' di diligenza ed è andata bene al primo tentativo. Non c'è molto nel circuito di schermatura in sé, quindi ho avuto molto spazio. Ho tracciato ampie tracce per i carichi LED, quindi ci sarebbe stata molta capacità di trasporto di corrente per le mie esigenze. Ho posizionato i MOSFET dove potevano essere montati piatti, con o senza dissipatori di calore. Finora, non ho avuto bisogno di dissipatori di calore per il numero di LED che ho utilizzato, ma lo spazio c'è se necessario.

Ho anche aggiunto fori che corrispondevano ai fori di montaggio sul traliccio, in modo da poter utilizzare i distanziatori per montare il traliccio sul mio scudo. Con lo scudo collegato all'Arduino e il traliccio sospeso su supporti sopra lo scudo, tutto dovrebbe essere bello e solido.

Ho quindi stampato il layout della scheda e l'ho incollato su un pezzo di anima in schiuma e ho inserito le mie parti per assicurarmi che tutto si adattasse. Tutto bene, quindi ho spedito l'ordine.

Ho quindi iniziato a lavorare su un recinto. Utilizzando Fusion 360, ho progettato un semplice contenitore per contenere le tre schede (Arduino Uno, shield e Trellis). I fori nella custodia consentono il collegamento alla porta USB di Arduino e, naturalmente, l'accesso alla connessione della striscia LED e al jack di alimentazione schermato. Il jack di alimentazione Arduino è coperto dalla custodia, per garantire che non venga utilizzato. Dopo un paio di prototipi per il montaggio di prova, ho finalmente avuto un design di cui ero soddisfatto. Ho pubblicato i file STL per l'enclosure su Thingiverse.

In futuro, realizzerò una versione della scheda a cui è possibile collegare direttamente un Nano, questo renderebbe il progetto ancora più compatto. Fino ad allora, potresti anche usare un adattatore da Nano a Uno come questo.

Se hai intenzione di fare lo scudo, ecco cosa ti servirà oltre alle parti menzionate nel passaggio 1:

  • Scheda PC RGB LED Driver Shield (da ExpressPCB o altri; puoi scaricare i file dal mio repository Github per il progetto);
  • diodo 1N4002;
  • Condensatore elettrolitico radiale da 100uF 25V (usare 220uF o 470uF se un grande carico di LED);
  • Presa di alimentazione, PJ202-AH (modello nominale 5A).

Le seguenti parti sono facoltative:

  • LED da 3 mm - qualsiasi colore, per lampada pilota (può essere omesso)
  • Resistenza da 1500 ohm - necessaria solo se si utilizza una lampada pilota a LED

Consigliato: