Taula de continguts:

Seqüenciador LED RGB programable (amb Arduino i Adafruit Trellis): 7 passos (amb imatges)
Seqüenciador LED RGB programable (amb Arduino i Adafruit Trellis): 7 passos (amb imatges)

Vídeo: Seqüenciador LED RGB programable (amb Arduino i Adafruit Trellis): 7 passos (amb imatges)

Vídeo: Seqüenciador LED RGB programable (amb Arduino i Adafruit Trellis): 7 passos (amb imatges)
Vídeo: Led Eurorack Patchcables 2024, Desembre
Anonim
Image
Image
Connecteu la placa del controlador
Connecteu la placa del controlador

Els meus fills volien que les tires LED de color il·luminessin els seus escriptoris i jo no volia fer servir un controlador de tires RGB enllaunat, perquè sabia que s’avorrien amb els patrons fixos que tenen aquests controladors. També vaig pensar que seria una gran oportunitat per crear-los una eina didàctica que poguessin utilitzar per perfeccionar les habilitats de programació i electrònica que els he estat ensenyant. Aquest és el resultat.

Us mostraré com construir aquest senzill controlador de tires LED RGB programable mitjançant un Arduino Uno (o Nano), un enreixat Adafruit i un grapat d’altres parts.

L’enreixat Adafruit és una de les meves joguines noves preferides de Lady Ada i de la tripulació. Primer de tot, són només 9,95 dòlars per al tauler i altres 4,95 dòlars per al teclat de botó d’elastòmer de silicona (preus a partir d’aquest escrit). Això és fantàstic per a una matriu 4x4 de 16 botons amb capacitat de LED. No inclou cap LED muntat, heu de subministrar-los, però això us proporciona la flexibilitat per triar els colors que desitgeu (i manté el cost i la complexitat baixos en comparació amb la construcció en LEDs adreçables). Per construir aquest projecte com el meu, necessitareu un grapat de LEDs de 3 mm. He utilitzat 2 vermells, 2 verds, 2 blaus, 4 grocs i 6 blancs.

El Trellis utilitza I2C per comunicar-se, de manera que només requereix dos pins d'E / S (dades i rellotge) per controlar 16 botons i 16 LED.

Podeu fer la part de maquinari d’aquest projecte en una petita placa proto, que és com vaig fer el meu prototip. Ràpidament em vaig adonar que necessitava alguna cosa més ordenada i més continguda als seus escriptoris (un Arduino nu i una placa proto que colpegessin serien massa fràgils), així que vaig fer el meu propi escut per conduir les tires LED. Les instruccions i els fitxers per construir l’escut s’inclouen a l’últim pas.

El controlador utilitza tres MOSFET IRLB8721 i tres resistències. I, per descomptat, necessitareu una tira LED per conduir; gairebé qualsevol banda LED de 12V RGB senzilla farà. Es tracta de LED simples, com SMD 5050s, que no són fantàstics per a adreçar-se individualment (sense NeoPixels, etc.). Aquest és un altre projecte. També necessiteu una font d’alimentació de 12V prou gran com per alimentar el nombre de LEDs que vulgueu utilitzar.

Per tant, per resumir, aquí teniu les necessitats bàsiques de maquinari per a aquest projecte:

  • Un Arduino Uno o Nano (aquestes instruccions són per a Uno amb capçaleres femenines instal·lades, però Nano en una taula de treball funciona bé) (Adafruit, Amazon, Mouser);
  • Un tauler Adafruit Trellis i botó de silicona (Adafruit);
  • Tres MOSFET de canal N IRLB8721 (Adafruit, Amazon, Mouser);
  • Tres resistències 1K (Amazon, Mouser);
  • Tres resistències de 220 ohm (Amazon, Mouser)
  • Una petita placa proto (la primera tenia una mida 1/4; trieu qualsevol mida amb què pugueu treballar còmodament) (Adafruit, Amazon);
  • Una tira LED de 12V RGB (SMD 5050) (Adafruit, Amazon);
  • Font d'alimentació de 12V: trieu una potència adequada al nombre de LEDs que tingueu previst conduir.

Exempció de responsabilitat obligatòria: els enllaços anteriors es proporcionen per a la vostra comoditat i no són un aval de cap producte o venedor; ni em beneficio de cap compra realitzada en aquests enllaços. Si teniu proveïdors que us agraden més, ajudeu-los.

Comencem…

Pas 1: connecteu la placa del controlador

Connecteu la placa del controlador
Connecteu la placa del controlador

Aquí teniu el circuit de controladors LED. És molt senzill. Utilitza un MOSFET IRBLxxx de canal N per a cada canal de la tira LED. La tira LED és un ànode comú, és a dir, + 12V s’envia a la tira LED i els canals LED vermells, verds i blaus es controlen proporcionant terra a la connexió respectiva amb la banda. Per tant, connectarem el drenatge dels MOSFET als canals de color LED i la font a terra. Les portes es connectaran a les sortides digitals Arduino i les resistències proporcionen un desplegable que garanteix que cada MOSFET s’encengui o s’apagui completament segons sigui necessari.

L'Arduino ofereix modulació d'amplada de pols en algunes de les seves sortides digitals, de manera que farem servir aquestes sortides (específicament D9, D10, D11) de manera que es pugui controlar la intensitat de cada canal de color.

Si esteu confós sobre com connectar el dispositiu MOSFET IRLB8721, tingueu-ne un a la mà amb la part frontal orientada cap a vosaltres, tal com es mostra a la foto superior. El pin de l'esquerra (pin 1) és la porta i es connectarà a un pin de sortida digital Arduino i a la resistència (l'altre extrem de la resistència s'hauria de connectar a terra). El pin del centre (pin 2) és el desguàs i es connecta al canal de color de la tira LED. El pin de la dreta (pin 3) és la font i està connectat a terra. Assegureu-vos de fer un seguiment de quin transistor es connecta a quin canal de color LED.

No entraré en els detalls de com soldar les taules proto. Sincerament, ho odio i no en sóc bo. Però, per bé o per mal, funciona i és una manera ràpida i bruta d’aconseguir un prototip sòlid o puntual. El meu primer tauler es mostra aquí.

També podeu fer una taula de proves. Sens dubte, seria més ràpid que soldar-ho tot en una placa proto, però menys permanent.

Un cop connectat el controlador, connecteu les entrades de la porta MOSFET als pins de sortida digital Arduino: D9 per al canal verd, D10 per al canal vermell i D11 per al canal blau. Connecteu la tira LED a la vostra placa proto també.

A més, assegureu-vos que la placa del controlador tingui una connexió independent de la seva terra a un dels pins de terra de l’Arduino.

Finalment, per alimentar el LED, connecteu el cable negatiu (terra) del subministrament de 12 V a una terra de la placa del controlador. A continuació, connecteu el cable positiu del subministrament de 12 V al cable d’ànode de la vostra tira LED (es tracta d’un fil negre dels cables que es mostra a la imatge).

En última instància, vaig acabar dissenyant un escut de placa de PC que es munta a l’Uno i que també té un suport de muntatge per a l’enreixat. Això va proporcionar un producte final molt més acabat. Si voleu fer-ho, podeu ometre l'ús de la placa proto tal com es descriu aquí i només heu de fer la placa protectora. Tot això es descriu a l'últim pas.

Pas 2: col·loqueu LEDs al enreixat

Col·loqueu LED al enreixat
Col·loqueu LED al enreixat

El tauler enreixat té coixinets buits per a LEDs de 3 mm que haurem d’omplir. Tingueu en compte els símbols dels coixinets: hi ha un "+" molt subtil al costat del coixinet per designar el costat de l'ànode. Si manteniu el tauler de manera que el text quedi cap a la dreta cap amunt, també hi ha una notació a la part superior i inferior del tauler que indica que els ànodes LED es troben a l’esquerra.

Soldeu els LEDs de 3 mm al tauler. Mirant a la part frontal del tauler, envieu un missatge de text a la dreta cap amunt, l’interruptor superior / esquerra / la posició del LED és # 1, la part superior dreta és el # 4, la part inferior esquerra és el # 13 i la part inferior dreta és el # 16. A continuació, es mostren els colors que he utilitzat en cada posició (i hi ha una raó per la qual cosa us aconsello que seguiu el meu patró almenys per a les dues files superiors):

1 - vermell2 - verd3 - blau4 - blanc5 - vermell6 - verd7 - blau8 - blanc9 - blanc10 - blanc11 - groc12 - groc13 - blanc14 - blanc15 - groc16 - groc

Reconeixement de CC: la imatge enreixada anterior és d’Adafruit i s’utilitza sota la llicència Creative Commons - Reconeixement / Compartir igual.

Pas 3: connecteu l’enreixat a l’Arduino

Connecteu l’enreixat a l’Arduino
Connecteu l’enreixat a l’Arduino

El Trellis té cinc coixinets de cablejat, però només s’utilitzen quatre en aquest projecte. El Trellis necessita SDA i SCL per comunicar-se amb l'Arduino (mitjançant I2C) i 5V i GND per alimentar-se. No s’utilitza l’últim bloc, INT. Els coixinets enreixats apareixen a les quatre vores del tauler. Podeu utilitzar qualsevol conjunt de coixinets que desitgeu.

Soldeu un cable d’interconnexió sòlid als coixinets 5V, GND, SDA i SCL. A continuació, connecteu el cable de 5V al pin de 5V de l’Arduino, el GND al pin de terra, el cable SDA a A4 i el cable SCL a A5.

A continuació, encendrem l'Arduino i hi penjarem l'esbós. Ara és un bon moment per col·locar el botó de silicona al tauler enreixat. Simplement es troba al tauler (tingueu en compte els "nubs" de la part inferior del coixinet que s'adapten als forats del tauler), de manera que és possible que vulgueu utilitzar un parell de trossos de cinta per subjectar les vores del coixinet al tauler per ara.

Atribució de CC: la imatge de cablejat enreixat de dalt és una versió retallada d’aquesta imatge per Adafruit i s’utilitza sota la llicència Creative Commons - Attribution / ShareAlike.

Pas 4: baixeu el Sketch del projecte i pengeu-lo a l'Arduino

Podeu descarregar l’esbós de la meva reposició de Github d’aquest projecte.

Un cop el tingueu, obriu-lo a l'IDE d'Arduino, connecteu-lo mitjançant un cable USB i pengeu l'esbós a l'Arduino.

Si l’esbós es penja i l’enreixat està correctament connectat, qualsevol dels botons de l’enreixat hauria de parpellejar ràpidament tres vegades quan es prem. Això indica que heu premut un botó no vàlid perquè el sistema apareix en estat "off", de manera que l'única pressió vàlida és la necessària per activar-lo.

Per engegar el sistema, manteniu premut el botó inferior esquerre (# 13) durant almenys un segon. Quan deixeu anar el botó, tots els LED haurien d’il·luminar-se breument i, a continuació, les dues files inferiors s’apagaran, excepte el número 13 (a la part inferior esquerra). El sistema es troba en estat d’activació i inactiu.

Podeu provar d’utilitzar les dues files superiors per il·luminar i atenuar els canals LED com a primera prova. Si això funciona, esteu bé per passar al següent pas. Si no, comproveu:

  1. La font d'alimentació LED està connectada i encesa;
  2. Els MOSFET de la placa de controladors estan correctament connectats. Si utilitzeu el mateix IRLB8721 que he utilitzat, comproveu:

    • Les entrades de senyal de la placa del controlador (portes MOSFET, pin 1 IRLB8721) estan connectades a Arduino D9 = verd, D10 = vermell, D11 = blau (vegeu la nota següent);
    • La tira LED està connectada a la placa del controlador i els canals de color LED es connecten als drenatges MOSFET (pin 2 IRLB8721);
    • Els pins d'origen MOSFET (pin 3 IRLB8721) estan connectats a terra a la placa del controlador;
  3. Connexió a terra entre la placa del controlador i el pin de terra Arduino.

Al següent pas, jugarem amb algunes de les funcions de la interfície d'usuari del teclat.

NOTA: Si el controlador funciona però els botons d'intensitat no controlen els colors adequats, no us preocupeu i no torneu a connectar. Només cal que accediu a l’esbós de l’IDE Arduino i modifiqueu les definicions de pins VERMELL, VERD i BLAU a prop de la part superior del fitxer.

Pas 5: Funcions bàsiques de control

Funcions bàsiques de control
Funcions bàsiques de control

Ara que el sistema està engegat, podem jugar amb alguns dels botons i fer que faci coses.

Com he dit al pas anterior, quan s’encén, el sistema apareix en el seu estat “inactiu”. En aquest estat, podeu utilitzar els botons de les dues files superiors per augmentar i disminuir la intensitat del color de cadascun dels canals LED vermells, verds i blaus. Si utilitzeu els botons blancs d’augment / disminució, el sistema augmenta o disminueix la intensitat dels tres canals per igual i a nivells iguals.

Les dues files inferiors s’utilitzen per reproduir patrons predefinits. Aquests patrons s’emmagatzemen a la EEPROM d’Arduino. Quan l'esbós s'executa per primera vegada, veu que l'EEPROM no té cap patró emmagatzemat i emmagatzema un conjunt de patrons predeterminats. Posteriorment, podeu canviar aquests patrons i els canvis s’emmagatzemen a la EEPROM d’Arduino, substituint el patró predeterminat. Això garanteix que els vostres patrons sobrevisquin a les desconnexions de potència. La funció d'edició es descriu al següent pas.

De moment, premeu breument qualsevol dels botons predefinits (els vuit botons de les dues files inferiors) per executar el patró emmagatzemat per a aquest botó. El botó parpelleja mentre s’executa el patró. Per aturar el patró, torneu a prémer breument el botó del patró. Mentre s’està executant un patró, es poden utilitzar els botons blancs amunt / avall de les files superiors per canviar la velocitat del patró.

Si deixeu el projecte en pau durant uns segons sense tocar cap botó, notareu que els LED es tenueixen. Això és tant per estalviar energia com per evitar que els enreixats il·luminin excessivament qualsevol "estat d'ànim" que els LED intenten crear. Si toqueu un botó del enreixat, es tornarà a activar.

Per apagar el sistema, manteniu premut el botó inferior esquerre (# 13) durant un o més segons i deixeu anar. L'enreixat i la tira LED quedaran foscos.

Pas 6: Edició de patrons al teclat

Edició de patrons al teclat
Edició de patrons al teclat

Com he dit al pas anterior, l'esbós emmagatzema vuit patrons predeterminats a EEPROM la primera vegada que s'executa. Podeu canviar 7 d'aquests patrons per una altra cosa si voleu utilitzar el mode d'edició de patrons al teclat.

Per entrar al mode d'edició de patrons, primer decidiu per a quin botó voleu editar el patró. Podeu triar qualsevol botó que no sigui el botó inferior esquerre. Introduïu el mode d'edició de patrons prement llarga (manteniu premut més d'un segon) al botó de patró que hàgiu triat. Quan es deixa anar, el botó s’il·luminarà de forma fixa i les dues files superiors començaran a parpellejar. Això indica que esteu en mode d'edició.

El mode d'edició comença al primer pas del patró i continua fins que sortiu de l'edició o acabeu d'editar el 16è pas (16 passos com a màxim per patró). A cada pas, utilitzeu els botons d’intensitat del canal de les dues files superiors per seleccionar el color que vulgueu per a aquest pas. A continuació, premeu breument el botó de configuració predeterminada del patró per desar aquest color i passar al següent pas. Al darrer pas, en lloc de prémer-ho breument, només cal que premeu llargament per sortir de l'edició.

Després de sortir de l'edició de patrons, el patró es reprodueix automàticament.

Això és! Ara teniu un controlador LED RGB que seqüenciarà patrons que podeu programar mitjançant el teclat. Podeu aturar-vos aquí o, si voleu crear una versió més formal d’aquest projecte, seguiu la resta de passos.

Pas 7: millor maquinari: protecció i recinte del controlador LED RGB

Image
Image
Millor maquinari: blindatge i recinte del controlador LED RGB
Millor maquinari: blindatge i recinte del controlador LED RGB
Millor maquinari: blindatge i recinte del controlador LED RGB
Millor maquinari: blindatge i recinte del controlador LED RGB

Una vegada que tenia un prototip de treball, sabia que no podia deixar una placa Arduino i proto nua als taulells dels meus fills com a solució permanent. Necessitava un recinte per al projecte. També vaig decidir que faria una placa de pilotatge millor i vaig pensar que era l’oportunitat perfecta per fer el meu propi escut.

Vaig netejar el meu esquema de paper introduint-lo a ExpressSCH, una eina gratuïta que ofereix ExpressPCB, un fabricant de taulers que ofereix tirades curtes i econòmiques de petites plaques de PC. Fa més d’una dècada que faig servir ExpressPCB en projectes, però utilitzeu, per descomptat, les eines i el fabricant que preferiu.

Vaig afegir un parell de petites funcions a l'esquema bàsic perquè funcionés bé com a protecció per a aquest projecte. Vaig afegir coixinets per connectar el enreixat, una presa de corrent, una làmpada pilot i un connector per a la tira LED. També he afegit un punt per a un condensador a través de la font d'alimentació. El circuit final es mostra aquí.

Vaig decidir que el poder del projecte hauria de venir de l’escut. El 12V subministrat a l’escut alimenta tant la tira LED com l’Arduino. L’alimentació de l’Arduino es proporciona connectant l’entrada de subministrament al pin VIN de l’Arduino, que és bidireccional (podeu alimentar l’Arduino amb aquest pin o, si connecteu l’alimentació a l’Arduino en un altre lloc, us proporcionarà encendre aquest pin). El díode de protecció D1 impedeix que qualsevol alimentació connectada directament a l’Arduino (per exemple, USB) intenti alimentar els LED.

Per què no utilitzeu la presa d’alimentació de l’Arduino i només hi heu de connectar 12V? Tot i que podria haver subministrat 12V a la presa d’alimentació de l’Arduino i utilitzar el pin VIN per agafar aquesta alimentació per a l’escut, em preocupava que el díode D1 i les traces de l’Arduino no estiguessin a l’altura dels corrents possibles en accionar el LED. tires. Per tant, vaig decidir que el meu escut agafaria l’entrada d’alimentació i subministraria energia a l’Arduino. També necessitava 5V per a l’enreixat, però la regulació de potència incorporada de l’Arduino subministra 5V a diversos pins, així que vaig utilitzar un d’ells per Enreixat. Això em va salvar posant un circuit regulador a l’escut.

Després vaig disposar el PCB. He utilitzat alguns recursos que he trobat per obtenir les mesures exactes per a la col·locació dels pins per satisfer les capçaleres de l’Arduino Uno. Una mica de diligència i va coincidir al primer intent. El circuit de protecció no té gaire, així que tenia molt d’espai. Vaig traçar grans traces de les càrregues de LED, de manera que hi hauria molta capacitat de càrrega per a les meves necessitats. Vaig configurar els MOSFET on es podrien muntar plans, amb o sense dissipadors de calor. Fins ara, no he necessitat dissipadors de calor pel nombre de LEDs que he utilitzat, però l’espai hi és, si cal.

També vaig afegir forats que coincidien amb els forats de muntatge del enreixat, de manera que pogués fer servir separadors per muntar el enreixat al meu escut. Amb l’escut endollat a l’Arduino i l’enreixat suspès en els separadors sobre l’escut, tot hauria de ser agradable i sòlid.

A continuació, vaig imprimir el disseny del tauler i el vaig enganxar a un tros de nucli d’escuma i vaig inserir les meves peces per assegurar-me que tot quedés bé. Tot bé, així que vaig enviar la comanda.

Després vaig començar a treballar en un recinte. Amb Fusion 360, vaig dissenyar un recinte senzill per contenir les tres taules (Arduino Uno, shield i Trellis). Els forats del recinte permeten la connexió al port USB d'Arduino i, per descomptat, l'accés a la connexió de tira LED i al connector d'alimentació de blindatge. La presa d'alimentació Arduino està coberta pel recinte, per assegurar-se que no s'utilitza. Després d’un parell de prototips per a l’ajust de la prova, finalment vaig tenir un disseny amb el qual estava satisfet. He publicat els fitxers STL del recinte a Thingiverse.

En el futur, faré una versió de la placa a la qual es pot connectar un Nano directament, cosa que farà que el projecte sigui encara més compacte. Fins aleshores, també es podia utilitzar un adaptador de blindatge Nano a Uno com aquest.

Si voleu fer l'escut, això és el que necessiteu a més de les parts esmentades al pas 1:

  • Tauler de PC RGB LED Driver Shield (de ExpressPCB o d'altres; podeu descarregar els fitxers del meu repositori de Github per al projecte);
  • Díode 1N4002;
  • Condensador electrolític radial 100uF 25V (utilitzeu 220uF o 470uF si hi ha una gran càrrega LED);
  • Presa d’alimentació, PJ202-AH (model classificat 5A).

Les següents parts són opcionals:

  • LED de 3 mm: qualsevol color, per a làmpada pilot (es pot ometre)
  • Resistència de 1500 ohm: només es necessita si s'utilitza un llum pilot LED

Recomanat: