Cuprins:

Sequencer LED RGB programabil (folosind Arduino și Adafruit Trellis): 7 pași (cu imagini)
Sequencer LED RGB programabil (folosind Arduino și Adafruit Trellis): 7 pași (cu imagini)
Anonim
Image
Image
Conectați placa șoferului
Conectați placa șoferului

Fiii mei au dorit benzi LED color pentru a-și lumina birourile și nu am vrut să folosesc un controler de benzi RGB conservat, pentru că știam că se vor plictisi cu modelele fixe pe care le au aceste controlere. De asemenea, m-am gândit că ar fi o mare oportunitate de a le crea un instrument didactic pe care să-l poată folosi pentru a îmbunătăți abilitățile de programare și electronică pe care le-am predat. Acesta este rezultatul.

Vă voi arăta cum să construiți acest controler de bandă LED RGB simplu, programabil, utilizând un Arduino Uno (sau Nano), un spalier Adafruit și o mână de alte părți.

Adafruit Trellis este una dintre noile mele jucării preferate de la Lady Ada și echipaj. În primul rând, este doar 9,95 USD pentru tablă și încă 4,95 USD pentru butonul din elastomer de silicon (prețurile începând cu această scriere). Aceasta este o ofertă excelentă pentru o matrice 4x4 cu 16 butoane cu capacitate LED. Nu vine cu LED-uri montate, trebuie să le furnizați, dar asta vă oferă flexibilitatea de a alege culorile dorite (și menține costul și complexitatea mai mici față de construirea în LED-uri adresabile). Pentru a construi acest proiect ca al meu, veți avea nevoie de o mână de LED-uri de 3 mm. Am folosit 2 roșu, 2 verde, 2 albastru, 4 galben și 6 alb.

Trellis folosește I2C pentru a comunica, deci necesită doar doi pini I / O (date și ceas) pentru a controla 16 butoane și 16 LED-uri.

Puteți face partea hardware a acestui proiect pe o mică placă proto, așa am făcut prototipul meu. Mi-am dat seama repede că aveam nevoie de ceva mai îngrijit și mai mult conținut pe birourile lor (un Arduino gol și o placă proto care se loveau în jurul lor ar fi prea fragile), așa că mi-am făcut propriul scut pentru a conduce benzile LED. Instrucțiunile și fișierele pentru construirea scutului sunt incluse în ultimul pas.

Driverul folosește trei MOSFET-uri IRLB8721 și trei rezistențe. Și, desigur, veți avea nevoie de o bandă LED pentru a conduce; cam orice bandă LED de 12V RGB simplă va face. Acestea sunt LED-uri simple, cum ar fi SMD 5050s, care nu sunt fanteziste care pot fi adresate individual (fără NeoPixels etc.) - acesta este un alt proiect! De asemenea, aveți nevoie de o sursă de alimentare de 12V suficient de mare pentru a conduce numărul de LED-uri pe care intenționați să le utilizați.

Deci, pentru a recapitula, iată nevoile hardware de bază pentru acest proiect:

  • Unul Arduino Uno sau Nano (aceste instrucțiuni sunt pentru Uno cu anteturi feminine instalate, dar Nano pe o placă funcționează bine) (Adafruit, Amazon, Mouser);
  • O placă Adafruit Trellis și un buton din silicon (Adafruit);
  • Trei MOSFET-uri IRLB8721 cu canal N (Adafruit, Amazon, Mouser);
  • Trei rezistențe 1K (Amazon, Mouser);
  • Trei rezistențe de 220 ohmi (Amazon, Mouser)
  • O mică placă proto (prima mea a fost de 1/4 - alegeți orice dimensiune cu care puteți lucra confortabil) (Adafruit, Amazon);
  • O bandă LED de 12V RGB (SMD 5050) (Adafruit, Amazon);
  • Alimentare de 12V - alegeți o putere adecvată pentru numărul de LED-uri pe care intenționați să le conduceți.

Renunțare obligatorie: linkurile de mai sus sunt furnizate pentru confortul dvs. și nu reprezintă o aprobare a niciunui produs sau furnizor; nici nu profit de orice achiziții efectuate la aceste linkuri. Dacă aveți furnizori care vă plac mai mult, susțineți-i!

Să începem…

Pasul 1: conectați placa driverului

Conectați placa șoferului
Conectați placa șoferului

Iată circuitul driverului cu LED-uri. E foarte simplu. Folosește un MOSFET IRBLxxx cu canal N pentru fiecare canal de pe banda LED. Banda LED este un anod obișnuit, ceea ce înseamnă că + 12V este trimis către banda LED, iar canalele LED roșu, verde și albastru sunt controlate prin furnizarea de masă la conexiunea respectivă cu banda. Deci, vom conecta scurgerea MOSFET-urilor la canalele de culoare LED și sursa la masă. Porțile vor fi conectate la ieșirile digitale Arduino, iar rezistențele oferă un pull-down care asigură că fiecare MOSFET pornește sau oprește complet, după cum este necesar.

Arduino oferă modularea lățimii impulsurilor pe unele dintre ieșirile sale digitale, așa că vom folosi acele ieșiri (în special D9, D10, D11), astfel încât intensitatea fiecărui canal de culoare să poată fi controlată.

Dacă sunteți confuz cu privire la ce să vă conectați pe MOSFET-urile IRLB8721, țineți unul în mână, cu fața orientată spre dvs., așa cum se arată în fotografia de mai sus. Pinul din stânga (pinul 1) este poarta și se va conecta la un pin de ieșire digital Arduino și la rezistor (celălalt capăt al rezistorului ar trebui să se conecteze la masă). Pinul din centru (pinul 2) este canalul de scurgere și se conectează la canalul de culoare al benzii LED. Pinul din dreapta (pinul 3) este sursa și este conectat la masă. Asigurați-vă că urmăriți ce tranzistor se conectează la ce canal de culoare LED.

Nu voi intra în detaliile modului de lipire a plăcilor proto. Sincer, îl urăsc și nu mă pricep la asta. Dar, în bine sau în rău, funcționează și este un mod rapid și murdar de a obține un prototip solid sau o singură dată. Primul meu forum este afișat aici.

Ați putea, de asemenea, să faceți acest lucru. Cu siguranță ar fi mai rapid decât lipirea cu totul pe o placă proto, dar mai puțin permanent.

Odată ce driverul este conectat, conectați intrările de poartă MOSFET la pinii de ieșire digitală Arduino: D9 pentru canalul verde, D10 pentru canalul roșu și D11 pentru canalul albastru. Conectați banda LED cu placa proto.

De asemenea, asigurați-vă că placa de driver are o conexiune separată de la masă la unul dintre pinii de masă Arduino.

În cele din urmă, pentru alimentarea cu LED-uri, conectați cablul negativ (la sol) al sursei de 12V la o masă de pe placa șoferului. Apoi conectați cablul pozitiv al sursei de 12V la cablul anodic al benzii dvs. LED (acesta este un fir negru pe cablurile mele prezentat în imagine).

În cele din urmă, am ajuns să proiectez un scut pentru placă pentru PC care se montează pe Uno și are, de asemenea, un suport de montare pentru spalier. Acest lucru a oferit un produs final mult mai finit. Dacă doriți să faceți acest lucru, s-ar putea să nu folosiți placa proto așa cum este descris aici și să faceți doar placa de protecție. Că totul este descris în ultimul pas.

Pasul 2: Puneți LED-uri pe spalier

Puneți LED-uri pe spalier
Puneți LED-uri pe spalier

Placa Trellis are tampoane goale pentru LED-uri de 3 mm pe care va trebui să le umplem. Observați cu atenție simbolurile de pe tampoane - există un „+” foarte subtil lângă tampon pentru a desemna partea anodică. Dacă țineți placa astfel încât textul să fie în partea dreaptă în sus, există, de asemenea, o notație în partea de sus și de jos a plăcii care vă informează că anodii LED sunt în stânga.

Lipiți LED-urile de 3 mm pe placă. Privind în partea din față a plăcii, cu textul în partea dreaptă în sus, comutatorul stânga sus / poziția LED este # 1, dreapta sus este # 4, stânga jos este # 13 și dreapta jos este # 16. Iată culorile pe care le-am folosit în fiecare poziție (și există un motiv pentru care, așa că vă sfătuiesc să urmați tiparul meu cel puțin pentru primele două rânduri):

1 - roșu2 - verde3 - albastru4 - alb5 - roșu6 - verde7 - albastru8 - alb9 - alb10 - alb11 - galben12 - galben13 - alb14 - alb15 - galben16 - galben

Atribuire CC: Imaginea Trellis de mai sus este de la Adafruit și este utilizată sub licența Creative Commons - Atribuire / ShareAlike.

Pasul 3: Conectați spalierul la Arduino

Conectați spalierul la Arduino
Conectați spalierul la Arduino

Trellis are cinci plăcuțe de cablare, dar doar patru sunt utilizate în acest proiect. Trellis are nevoie de SDA și SCL pentru a comunica cu Arduino (folosind I2C) și 5V și GND pentru alimentare. Ultimul tampon, INT, nu este utilizat. Tampoanele de spalier apar pe toate cele patru margini ale plăcii. Puteți utiliza orice set de tampoane dorite.

Lipiți un fir solid de interconectare la plăcuțele 5V, GND, SDA și SCL. Apoi, conectați firul de 5V la pinul de 5V de pe Arduino, GND la pinul de masă, firul SDA la A4 și firul SCL la A5.

Apoi, vom porni Arduino și vom încărca schița pe acesta. Acum este un moment bun pentru a pune butonul din silicon pe placa Trellis. Se așază doar pe tablă (rețineți "nodurile" de pe partea de jos a tamponului care se potrivesc în găurile de pe tablă), deci poate doriți să utilizați câteva bucăți de bandă pentru a ține marginile tamponului pe tablă pentru acum.

CC Attribution: imaginea de cablare Trellis de mai sus este o versiune decupată a acestei imagini de către Adafruit și este utilizată sub licența Creative Commons - Attribution / ShareAlike.

Pasul 4: Descărcați schița proiectului și încărcați-l pe Arduino

Puteți descărca schița din repo-ul meu Github pentru acest proiect.

Odată ce l-ați obținut, deschideți-l în ID-ul Arduino, conectați Arduino folosind un cablu USB și încărcați schița pe Arduino.

Dacă schița este încărcată și grătarul este conectat corect, oricare dintre butoanele de pe grătar ar trebui să clipească rapid de trei ori când este apăsat. Aceasta este o indicație că ați apăsat un buton nevalid, deoarece sistemul apare în starea „oprit”, deci singura apăsare de tastă validă este cea necesară pentru pornire.

Pentru a porni sistemul, apăsați și țineți apăsat butonul din stânga jos (# 13) timp de cel puțin o secundă. Când eliberați butonul, toate LED-urile ar trebui să se aprindă scurt, apoi cele două rânduri de jos se vor stinge, cu excepția # 13 (stânga jos). Sistemul este acum în starea de pornire și de repaus.

Puteți încerca să utilizați primele două rânduri pentru a lumina și estompa canalele LED ca prim test. Dacă funcționează, ești bine să treci la pasul următor. Dacă nu, verificați:

  1. Alimentarea cu LED este conectată și aprinsă;
  2. MOSFET-urile plăcii driverului sunt conectate corect. Dacă utilizați aceleași IRLB8721 pe care le-am folosit, verificați:

    • Intrările de semnal ale plăcii driverului (porți MOSFET, pinul 1 IRLB8721) sunt conectate la Arduino D9 = verde, D10 = roșu, D11 = albastru (vezi nota de mai jos);
    • Banda LED este conectată la placa driverului și canalele de culoare LED sunt conectate la canalele MOSFET (IRLB8721 pin 2);
    • Pinii sursă MOSFET (pinul 3 IRLB8721) sunt conectați la masă pe placa driverului;
  3. Conexiune la masă între placa șoferului și pinul de masă Arduino.

În pasul următor, ne vom juca cu unele dintre funcțiile interfeței de utilizare a butonului.

NOTĂ: Dacă controlerul dvs. funcționează, dar butoanele de intensitate nu controlează culorile potrivite, nu vă faceți griji și nu reconectați cablul! Trebuie doar să intrați în Sketch în Arduino IDE și să modificați definițiile pin roșu, verde și albastru în partea de sus a fișierului.

Pasul 5: Funcții de control de bază

Funcții de control de bază
Funcții de control de bază

Acum că sistemul este pornit, putem juca cu unele dintre butoane și îl putem face să facă lucruri.

Așa cum am spus în pasul anterior, când este pornit, sistemul apare în starea „inactivă”. În această stare, puteți utiliza butoanele din primele două rânduri pentru a crește și a reduce intensitatea culorii fiecăruia dintre canalele LED roșu, verde și albastru. Dacă utilizați butoanele de creștere / micșorare albe, sistemul crește sau scade intensitatea tuturor celor trei canale în mod egal și la niveluri egale.

Cele două rânduri de jos sunt folosite pentru a reda modelele presetate. Aceste tipare sunt stocate în EEPROM-ul Arduino. Când schița rulează pentru prima dată, vede că EEPROM nu are niciun model stocat și stochează un set de modele implicite. Ulterior, puteți schimba aceste modele, iar modificările dvs. sunt stocate în EEPROM-ul Arduino, înlocuind modelul presetat. Acest lucru vă asigură că modelele dvs. supraviețuiesc deconectărilor de alimentare. Funcția de editare este descrisă în pasul următor.

Deocamdată, apăsați scurt oricare dintre butoanele presetate (cele opt butoane din cele două rânduri de jos) pentru a rula modelul stocat pentru acel buton. Butonul clipește în timp ce modelul rulează. Pentru a opri modelul, apăsați din nou scurt butonul modelului. În timp ce un model rulează, butoanele albe sus / jos din rândurile de sus pot fi utilizate pentru a modifica rata modelului.

Dacă lăsați proiectul singur câteva secunde fără să atingeți niciun buton, veți observa că LED-urile se estompează. Acest lucru este atât pentru economisirea energiei, cât și pentru a evita iluminarea supra-luminată a oricărei „dispoziții” pe care LED-urile încearcă să le creeze. Dacă atingeți un buton de pe spaliere, veți fi trezit din nou.

Pentru a opri sistemul, apăsați și țineți apăsat butonul din stânga jos (# 13) timp de una sau mai multe secunde și eliberați. Trellis și banda LED se vor întuneca.

Pasul 6: Editarea modelelor de pe tastatură

Editarea modelelor de pe tastatură
Editarea modelelor de pe tastatură

După cum am spus în pasul anterior, schița stochează opt modele implicite în EEPROM prima dată când rulează. Puteți schimba 7 dintre aceste modele cu altceva dacă doriți să utilizați modul de editare a modelelor de pe tastatura.

Pentru a intra în modul de editare a modelului, decideți mai întâi pentru ce buton doriți să editați modelul. Puteți alege orice buton, altul decât butonul din stânga jos. Intrați în modul de editare a modelelor apăsând lung (țineți apăsat mai mult de o secundă) pe butonul de model ales. Când este eliberat, butonul se va aprinde solid, iar cele două rânduri superioare vor începe să clipească. Acest lucru indică faptul că vă aflați în modul de editare.

Modul de editare începe la primul pas al modelului și continuă până când ieșiți din editare sau terminați editarea celui de-al 16-lea pas (maximum 16 pași pentru fiecare model). La fiecare pas, utilizați butoanele de intensitate a canalului din primele două rânduri pentru a selecta culoarea dorită pentru acel pas. Apoi apăsați scurt butonul de presetare a modelului pentru a salva acea culoare și a trece la pasul următor. La ultimul pas, în loc să apăsați scurt, apăsați lung pentru a ieși din editare.

După ce ieșiți din editarea modelului, modelul se redă automat.

Asta e! Acum aveți un controler LED RGB care va secvența modele pe care le puteți programa prin tastatură. Vă puteți opri aici sau, dacă doriți să construiți o versiune mai formală a acestui proiect, continuați să parcurgeți restul pașilor.

Pasul 7: Hardware mai bun: ecran RGB LED și carcasă

Image
Image
Hardware mai bun: ecran RGB LED și carcasă
Hardware mai bun: ecran RGB LED și carcasă
Hardware mai bun: ecran RGB LED și carcasă
Hardware mai bun: ecran RGB LED și carcasă

Odată ce am avut un prototip funcțional, am știut că nu pot lăsa o placă Arduino și proto goală pe birourile copiilor mei ca soluție permanentă. Aveam nevoie de o incintă pentru proiect. De asemenea, am decis că voi face o placă de conducere mai bună și am crezut că este ocazia perfectă de a-mi face propriul scut.

Mi-am curățat schema de hârtie introducând-o în ExpressSCH, un instrument gratuit oferit de ExpressPCB, un fabricant de plăci care oferă runde scurte ieftine de plăci mici pentru PC. Folosesc ExpressPCB de peste un deceniu pentru proiecte, dar folosiți orice instrumente și fabricant preferați, din toate punctele de vedere.

Am adăugat câteva caracteristici mici la schema de bază, astfel încât să funcționeze bine ca un scut pentru acest proiect. Am adăugat plăcuțe de conectare pentru a conecta spalierul, o mufă de alimentare, o lampă pilot și un conector pentru banda LED. Am adăugat, de asemenea, un spot pentru un condensator pe sursa de alimentare. Circuitul final este prezentat aici.

Am decis că puterea pentru proiect ar trebui să vină din scut. 12V furnizat scutului alimentează atât banda LED, cât și Arduino. Puterea către Arduino este asigurată prin conectarea intrării de alimentare la pinul VIN al Arduino, care este bidirecțional (puteți alimenta Arduino cu acest pin sau, dacă conectați alimentarea la Arduino în altă parte, acesta vă va furniza alimentarea acestui pin). Dioda de protecție D1 împiedică orice alimentare conectată direct la Arduino (de exemplu, USB) să încerce să alimenteze LED-urile.

De ce să nu folosiți mufa de alimentare Arduino și să conectați 12V acolo? În timp ce aș fi putut furniza 12V la mufa de alimentare Arduino și aș fi folosit pinul VIN pentru a prinde acea putere pentru scut, eram îngrijorat de faptul că dioda și urmele D1 ale Arduino nu aveau să fie la curenții mari posibili în acționarea LED-ului benzi. Așadar, am decis că scutul meu va prelua puterea de intrare și va furniza energie la Arduino. Aveam nevoie, de asemenea, de 5V pentru spalier, dar reglajul de alimentare integrat al Arduino furnizează 5V pe mai mulți pini, așa că am folosit unul dintre ele pentru Spalier. Asta m-a salvat punând un circuit regulator pe scut.

Am întins apoi PCB-ul. Am folosit câteva resurse pe care le-am găsit pentru a obține măsurătorile exacte pentru amplasarea pinilor pentru a îndeplini anteturile de pe Arduino Uno. Puțină sârguință și s-a potrivit la prima încercare. Circuitul scutului nu are prea multe, așa că am avut destul loc. Am trasat urme largi pentru încărcăturile cu LED-uri, așa că ar exista o mulțime de capacitate de transportare a curentului pentru nevoile mele. Am setat MOSFET-urile unde ar putea fi montate plat, cu sau fără radiatoare. Până acum, nu am avut nevoie de radiatoare pentru numărul de LED-uri pe care le-am folosit, dar spațiul este acolo, dacă este necesar.

Am adăugat, de asemenea, găuri care se potriveau cu găurile de montare de pe spalier, astfel încât să pot folosi stand-off-uri pentru a monta spalierul pe scutul meu. Cu scutul conectat la Arduino și spalierul suspendat pe stand-off-uri peste scut, totul ar trebui să fie frumos și solid.

Apoi am imprimat aspectul plăcii și l-am lipit pe o bucată de miez de spumă și mi-am introdus piesele pentru a mă asigura că totul se potrivește. Bine, așa că am trimis comanda.

Am început apoi să lucrez la o incintă. Folosind Fusion 360, am proiectat o incintă simplă pentru a conține cele trei plăci (Arduino Uno, scut și spalier). Găurile din carcasă permit conectarea la portul USB al Arduino și, bineînțeles, accesul la banda LED conectată și la ecranarea mufei de alimentare. Mufa de alimentare Arduino este acoperită de carcasă, pentru a vă asigura că nu este utilizată. După câteva prototipuri pentru montarea testelor, am avut în cele din urmă un design de care eram mulțumit. Am postat fișierele STL pentru incintă pe Thingiverse.

În viitor, voi face o versiune a plăcii la care un Nano poate fi conectat direct, ceea ce ar face proiectul și mai compact. Până atunci, puteai folosi și un adaptor de scut Nano la Uno ca acesta.

Dacă aveți de gând să faceți scutul, iată ce veți avea nevoie în plus față de părțile menționate la pasul 1:

  • Placă PC RGB LED Driver Shield (de la ExpressPCB sau altele; puteți descărca fișierele din repo-ul meu Github pentru proiect);
  • Dioda 1N4002;
  • 100uF 25V condensator electrolitic radial (utilizați 220uF sau 470uF dacă încărcarea LED este mare);
  • Mufă de alimentare, PJ202-AH (model clasificat 5A).

Următoarele părți sunt opționale:

  • LED de 3 mm - orice culoare, pentru lampa pilot (poate fi omis)
  • Rezistor de 1500 ohmi - necesar doar dacă se utilizează lampă pilot LED

Recomandat: