Sisukord:

Programmeeritav RGB LED -järjestus (Arduino ja Adafruit Trellise abil): 7 sammu (piltidega)
Programmeeritav RGB LED -järjestus (Arduino ja Adafruit Trellise abil): 7 sammu (piltidega)

Video: Programmeeritav RGB LED -järjestus (Arduino ja Adafruit Trellise abil): 7 sammu (piltidega)

Video: Programmeeritav RGB LED -järjestus (Arduino ja Adafruit Trellise abil): 7 sammu (piltidega)
Video: WS2812 [Programmable LED Strip] 2024, Juuli
Anonim
Image
Image
Juhtpaneeli ühendamine
Juhtpaneeli ühendamine

Mu pojad tahtsid värvilisi LED -ribasid oma laua valgustamiseks ja ma ei tahtnud kasutada konserveeritud RGB ribakontrollerit, sest teadsin, et neil hakkab igav nende kontrollerite fikseeritud mustritega. Samuti arvasin, et see oleks suurepärane võimalus luua neile õppevahend, mida nad saaksid kasutada programmeerimis- ja elektroonikaoskuste teritamiseks, mida ma neile õpetasin. See on tulemus.

Näitan teile, kuidas ehitada seda lihtsat, programmeeritavat RGB LED -ribakontrollerit, kasutades Arduino Uno (või Nano), Adafruit Trellist ja käputäis muid osi.

Adafruit Trellis on üks minu lemmik uusi mänguasju Lady Ada ja meeskonnalt. Esiteks on see tahvli eest vaid 9,95 dollarit ja silikoon -elastomeerist nupppadja eest veel 4,95 dollarit (hinnad selle kirjutamise seisuga). See on suurepärane LED-funktsiooniga 16-nupulise 4x4 maatriksi jaoks. Sellele ei ole paigaldatud ühtegi LED -i, peate need varustama, kuid see annab teile paindlikkuse soovitud värvide valimiseks (ning hoiab kulud ja keerukuse madalamad kui adresseeritavad LED -id). Selle projekti ehitamiseks nagu minul, vajate käputäis 3 mm LED -e. Kasutasin 2 punast, 2 rohelist, 2 sinist, 4 kollast ja 6 valget.

Trellis kasutab suhtlemiseks I2C -d, nii et 16 nupu ja 16 LED -i juhtimiseks on vaja ainult kahte I/O -kontakti (andmed ja kell).

Selle projekti riistvaraosa saate teha väikesel protoplaadil, nii tegin oma prototüübi. Mõistsin kiiresti, et vajan nende töölaudadele midagi korralikumat ja mahukamat (paljas Arduino ja proto -plaat oleks liiga habras), nii et tegin LED -ribade juhtimiseks oma kilbi. Juhised ja failid kilbi ehitamiseks on lisatud viimasesse etappi.

Juht kasutab kolme IRLB8721 MOSFET -i ja kolme takistit. Ja loomulikult vajate sõitmiseks LED -riba; peaaegu iga tavaline 12 V RGB LED -riba sobib. Need on lihtsad valgusdioodid, nagu SMD 5050, mitte väljamõeldud individuaalselt adresseeritavad (ei NeoPixeleid jne)-see on teine projekt! Teil on vaja ka 12 V toiteallikat, mis on piisavalt suur, et suurendada nende LED -ide arvu, mida kavatsete kasutada.

Niisiis, kokkuvõtteks, siin on selle projekti põhilised riistvaravajadused:

  • Üks Arduino Uno või Nano (need juhised on Uno jaoks, millele on paigaldatud naissoost päised, kuid Nano leivaplaadil töötab hästi) (Adafruit, Amazon, Mouser);
  • Üks Adafruit Trellis plaat ja silikoonnupp (Adafruit);
  • Kolm IRLB8721 N-kanaliga MOSFET-i (Adafruit, Amazon, Mouser);
  • Kolm 1K takistit (Amazon, Mouser);
  • Kolm 220 oomi takistit (Amazon, Mouser)
  • Üks väike protolaud (minu esimene oli 1/4 suurus-vali suvaline suurus, millega saad mugavalt töötada) (Adafruit, Amazon);
  • 12 V RGB LED -riba (SMD 5050) (Adafruit, Amazon);
  • 12 V toiteallikas - valige võimsus, mis vastab teie sõidetavate LED -de arvule.

Kohustuslik vastutusest loobumine: ülaltoodud lingid on teie mugavuse huvides ja ei kinnita ühtegi toodet ega müüjat; samuti ei saa ma kasu nendel linkidel tehtud ostudest. Kui teil on müüjaid, kes teile rohkem meeldivad, toetage neid igal juhul!

Alustame…

Samm: ühendage juhtplaat

Juhtpaneeli ühendamine
Juhtpaneeli ühendamine

Siin on LED -draiveri ahel. See on väga lihtne. See kasutab IRBLxxx N-kanaliga MOSFET-i iga LED-riba kanali jaoks. LED -riba on tavaline anood, mis tähendab, et LED -ribale saadetakse +12 V ning punaseid, rohelisi ja siniseid LED -kanaleid juhitakse, pakkudes riba vastavale ühendusele maandust. Niisiis, me ühendame MOSFETide äravoolu LED -värvikanalitega ja allika maandusega. Väravad ühendatakse Arduino digitaalsete väljunditega ja takistid pakuvad allalaadimist, mis tagab, et iga MOSFET lülitub vastavalt vajadusele täielikult sisse või välja.

Arduino pakub mõnes oma digitaalses väljundis impulsi laiuse modulatsiooni, nii et me kasutame neid väljundeid (täpsemalt D9, D10, D11), nii et iga värvikanali intensiivsust saab kontrollida.

Kui olete segaduses, mida IRLB8721 MOSFET -idega kuhu ühendada, hoidke ühte käes nii, et esikülg on teie poole, nagu on näidatud ülaltoodud fotol. Vasakul olev tihvt (tihvt 1) on värav ja ühendatakse Arduino digitaalse väljundtihvti ja takistiga (takisti teine ots peaks olema ühendatud maaga). Keskel olev tihvt (tihvt 2) on äravool ja ühendub LED -riba värvikanaliga. Parempoolne tihvt (tihvt 3) on allikas ja see on maandusega ühendatud. Jälgige kindlasti, milline transistor millise LED -värvikanaliga ühendub.

Ma ei süvene üksikasjadesse, kuidas proto -tahvleid kokku joota. Ausalt, ma vihkan seda ja ma pole selles hea. Kuid paremal või halvemal juhul see toimib ja see on kiire ja räpane viis kindla prototüübi või ühekordse teostuse tegemiseks. Minu esimene laud on siin näidatud.

Võite selle ka leivalauale panna. See oleks kindlasti kiirem kui protoplaadil kõike kokku joota, kuid vähem püsiv.

Kui olete draiveri ühendanud, ühendage MOSFET -värava sisendid Arduino digitaalsete väljundpistikutega: D9 rohelise kanali jaoks, D10 punase kanali jaoks ja D11 sinise kanali jaoks. Ühendage LED -riba ka oma protoplaadiga.

Veenduge ka, et teie juhtplaadil oleks eraldi ühendus maapinnast ühe Arduino maandusnõelaga.

Lõpuks ühendage LED -toite jaoks 12 V toite negatiivne (maandusjuhe) juhtplaadi maandusega. Seejärel ühendage 12V toite positiivne juhe oma LED -riba anoodjuhtmega (see on must juhe minu kaablitel, mis on näidatud pildil).

Lõppkokkuvõttes kavandasin Uno külge kinnitatava arvutiplaadi kilbi, millel on ka trellide paigaldamise tugi. See andis palju rohkem lõpptoote. Kui soovite seda teha, võite vahele jätta protoplaadi kasutamise, nagu siin kirjeldatud, ja lihtsalt valmistada kilp. Seda kõike kirjeldatakse viimases etapis.

Samm: pange trellidele LED -id

Asetage trellidele LED -id
Asetage trellidele LED -id

Trellis -plaadil on tühjad padjad 3 mm LED -ide jaoks, mida peame täitma. Pange tähele sümbolid padjadel hoolikalt-anoodi poole tähistamiseks on padja kõrval väga peen "+". Kui hoiate tahvlit nii, et tekst on parempoolne ülespoole, on tahvli üla- ja alaosas märge, et LED-anoodid asuvad vasakul.

Jootke oma 3 mm LED -id plaadile. Vaadates tahvli esiosa, tekst paremal pool üles, vasakpoolne ülemine lüliti/LED-asend on #1, parempoolne ülaosa on #4, vasakpoolne alumine on #13 ja alumine parem on #16. Siin on värvid, mida ma igas asendis kasutasin (ja sellel on põhjus, nii et soovitan teil järgida minu mustrit vähemalt kahe ülemise rea puhul):

1 - punane2 - roheline3 - sinine4 - valge5 - punane6 - roheline7 - sinine8 - valge9 - valge10 - valge11 - kollane12 - kollane13 - valge14 - valge15 - kollane16 - kollane

CC Attribution: Ülaltoodud trellise kujutis on Adafruit ja seda kasutatakse Creative Commons - Attribution/ShareAlike litsentsi alusel.

Samm: ühendage võred Arduinoga

Ühendage võred Arduinoga
Ühendage võred Arduinoga

Trellis on viis juhtmestikku, kuid selles projektis kasutatakse ainult nelja. Trellis vajab Arduinoga suhtlemiseks SDA -d ja SCL -i (kasutades I2C -d) ning toiteallikaks 5V ja GND. Viimast padja, INT, ei kasutata. Võrepadjad ilmuvad tahvli kõigile neljale servale. Võite kasutada mis tahes patjade komplekti, mida soovite.

Jootke tahke ühendusjuhe 5V, GND, SDA ja SCL padjadega. Seejärel ühendage 5 V juhe Arduino 5 V kontaktiga, GND maandusnõelaga, SDA juhe A4 ja SCL juhe A5 külge.

Järgmisena lülitame Arduino sisse ja laadime sellele visandi üles. Praegu on hea aeg panna silikoonnupp Trellise tahvlile. See lihtsalt istub tahvlil (pange tähele padja põhjas olevaid "nüpe", mis sobivad tahvli aukudesse), nii et võiksite kasutada paari teibitükki, et padja servad plaadi külge kinni hoida nüüd.

CC Attribution: ülaltoodud Trellise juhtmestiku pilt on Adafruit'i selle pildi kärbitud versioon ja seda kasutatakse Creative Commons - Attribution/ShareAlike litsentsi alusel.

Samm: laadige alla projekti visand ja laadige see Arduino

Selle projekti jaoks saate eskiisi alla laadida minu Githubi repost.

Kui olete selle saanud, avage see Arduino IDE -s, ühendage Arduino USB -kaabli abil ja laadige eskiis Arduinole üles.

Kui visand on üles laaditud ja võre on korralikult ühendatud, peaks mis tahes võre nuppude vajutamisel kolm korda kiiresti vilkuma. See näitab, et olete vajutanud sobimatut nuppu, kuna süsteem kuvatakse väljalülitatud olekus, nii et ainus kehtiv klahvivajutus on selle sisselülitamiseks vajalik.

Süsteemi sisselülitamiseks vajutage ja hoidke all vasakut alumist nuppu (#13) vähemalt üks sekund. Kui vabastate nupu, peaksid kõik LED -id põlema lühiajaliselt ja seejärel kaovad kaks alumist rida, välja arvatud number 13 (all vasakul). Süsteem on nüüd sisselülitatud ja jõudeolekus.

Esimese testina võite proovida LED -kanalite heledamaks muutmiseks kasutada kahte ülemist rida. Kui see töötab, võite jätkata järgmise sammuga. Kui ei, siis kontrollige:

  1. LED -toiteallikas on ühendatud ja sisse lülitatud;
  2. Juhtplaadi MOSFET -id on õigesti ühendatud. Kui kasutate samu IRLB8721 -sid, mida kasutasin, kontrollige:

    • Juhtplaadi signaali sisendid (MOSFET väravad, IRLB8721 pin 1) on ühendatud Arduinoga D9 = roheline, D10 = punane, D11 = sinine (vt märkus allpool);
    • LED -riba on ühendatud juhtplaadiga ja LED -värvikanalid on ühendatud MOSFET -äravooluga (IRLB8721 pin 2);
    • MOSFETi tihvtid (IRLB8721 pin 3) on ühendatud juhtplaadil oleva maandusega;
  3. Maandusjuhtplaadi ja Arduino maanduspistiku vahel.

Järgmises etapis mängime nuppude kasutajaliidese mõne funktsiooniga.

MÄRKUS. Kui teie kontroller töötab, kuid intensiivsusnupud ei kontrolli õigeid värve, ärge muretsege ja ärge ühendage juhtmeid uuesti! Minge lihtsalt Arduino IDE visandisse ja muutke faili ülaosas punaseid, rohelisi ja siniseid nööpnõelte määratlusi.

5. samm: põhilised juhtimisfunktsioonid

Juhtimise põhifunktsioonid
Juhtimise põhifunktsioonid

Nüüd, kui süsteem on sisse lülitatud, saame mängida mõne nupuga ja panna see asju tegema.

Nagu ma eelmises etapis ütlesin, jõuab süsteem sisselülitamisel oma jõudeolekusse. Selles olekus saate kahe ülemise rea nuppude abil suurendada ja vähendada iga punase, rohelise ja sinise LED -kanali värvi intensiivsust. Kui kasutate valgeid suurendamise/vähendamise nuppe, suurendab või vähendab süsteem kõigi kolme kanali intensiivsust võrdselt ja võrdsel tasemel.

Alumist kahte rida kasutatakse eelseadistatud mustrite taasesitamiseks. Need mustrid on salvestatud Arduino EEPROM -i. Eskiisi esmakordsel käivitamisel näeb see, et EEPROM -is pole ühtegi mustrit salvestatud, ja salvestab vaikimustrite komplekti. Seejärel saate neid mustreid muuta ja teie muudatused salvestatakse Arduino EEPROM -i, asendades eelseadistatud mustri. See tagab, et teie mustrid jäävad voolukatkestustest ellu. Redigeerimisfunktsiooni kirjeldatakse järgmises etapis.

Praegu vajutage lühidalt mõnda eelseadistatud nuppu (kaheksa alumist rida kaheksa nuppu), et käivitada selle nupu jaoks salvestatud muster. Nupp vilgub mustri töötamise ajal. Mustri peatamiseks vajutage uuesti lühidalt mustri nuppu. Mustri töötamise ajal saab mustrikiiruse muutmiseks kasutada ülemiste ridade valgeid üles/alla nuppe.

Kui jätate projekti mõneks sekundiks üksi ilma ühtegi nuppu puudutamata, märkate, et valgusdioodid tuhmuvad. See on nii energiasäästu eesmärgil kui ka selle vältimiseks, et trellid valgustaksid LED-ide poolt loodud meeleolu üle. Trellis oleva nupu puudutamine äratab selle uuesti üles.

Süsteemi väljalülitamiseks vajutage ja hoidke all vasakut nuppu (#13) üks või mitu sekundit ja vabastage. Trellis ja LED -riba lähevad pimedaks.

6. toiming: mustrite muutmine klaviatuuril

Mustrite muutmine klaviatuuril
Mustrite muutmine klaviatuuril

Nagu ma eelmises etapis ütlesin, salvestab eskiis esmakordsel käivitamisel EEPROMis kaheksa vaikimustrit. Soovi korral saate muuta 7 neist mustritest millekski muuks, kasutades nuppude mustrite redigeerimise režiimi.

Mustri redigeerimise režiimi sisenemiseks otsustage kõigepealt, millise nupu jaoks soovite mustrit muuta. Saate valida mis tahes muu nupu peale vasaku alumise nupu. Mustri redigeerimisrežiimi sisenemiseks vajutage pikalt (hoidke üle ühe sekundi all) valitud mustri nuppu. Vabastamisel süttib nupp ühtlaselt ja kaks ülemist rida hakkavad vilkuma. See näitab, et olete redigeerimisrežiimis.

Redigeerimisrežiim algab mustri esimesest sammust ja jätkub seni, kuni lõpetate redigeerimise või lõpetate redigeerimise 16. sammu (maksimaalselt 16 sammu mustri kohta). Kasutage igal sammul kahe ülemise rea kanalite intensiivsuse nuppe, et valida selle sammu jaoks soovitud värv. Seejärel vajutage mustri eelseadistamise nuppu selle värvi salvestamiseks ja liikuge järgmise sammu juurde. Viimasel etapil vajutage redigeerimisest väljumiseks lühikese vajutamise asemel lihtsalt pikalt.

Pärast mustrite redigeerimisest väljumist esitatakse muster automaatselt.

See on kõik! Nüüd on teil RGB LED -kontroller, mis järjestab mustreid, mida saate klahvistiku kaudu programmeerida. Võite siin peatuda või kui soovite selle projekti ametlikuma versiooni koostada, jätkake ülejäänud toimingutega.

7. samm: parem riistvara: RGB LED -draiverikilp ja ümbris

Image
Image
Parem riistvara: RGB LED -draiverikilp ja ümbris
Parem riistvara: RGB LED -draiverikilp ja ümbris
Parem riistvara: RGB LED -draiverikilp ja ümbris
Parem riistvara: RGB LED -draiverikilp ja ümbris

Kui mul oli töötav prototüüp, teadsin, et ma ei saa oma laste lauale püsivat lahendust jätta paljast Arduino ja proto -tahvlit. Vajasin projekti jaoks korpust. Samuti otsustasin, et teen parema juhtplaadi ja arvasin, et see on ideaalne võimalus oma kilbi valmistamiseks.

Puhastasin oma paberi skeemi, sisestades selle ExpressSCH -i, tasuta tööriista, mida pakub ExpressPCB, tahvlitootja, mis pakub odavaid lühikesi väikeseid PC -plaate. Olen ExpressPCB -d projektides kasutanud juba üle kümne aasta, kuid kasutage igal juhul mis tahes tööriistu ja valmistajat, mida soovite.

Lisasin põhiskeemile paar väikest funktsiooni, et see selle projekti jaoks hästi toimiks. Lisasin trellide ühendamiseks juhtmestikud, toitepistiku, juhtlambi ja LED -riba pistiku. Lisasin ka toiteallika kohale kondensaatori jaoks. Siin on näidatud lõplik vooluring.

Otsustasin, et projekti jaoks peaks jõud olema kilbist. Kilbile tarnitud 12 V toidab nii LED -riba kui ka Arduino. Arduino toiteallikaks on toitesisendi ühendamine Arduino VIN-tihvtiga, mis on kahesuunaline (saate selle tihvti abil Arduinole toite anda või kui ühendate toite Arduinoga mujal, annab see teile kaasasoleva toiteallika) lülitage see pin sisse). Kaitsediood D1 takistab otseselt Arduinoga ühendatud toite (nt USB) proovimist LED -e toita.

Miks mitte kasutada Arduino toitepistikut ja ühendada sinna lihtsalt 12V? Kuigi ma oleksin võinud Arduino toitepistikupesasse toita 12 V ja kasutada kilbi jaoks seda võimsust VIN -tihvti kasutades, olin ma mures, et Arduino D1 diood ja jäljed ei vasta LED -i juhtimisel võimalikele suurtele vooludele ribad. Niisiis, otsustasin, et mu kilp võtab üle toiteallika ja toidab selle Arduinole. Mul oli vaja ka võre jaoks 5 V, kuid Arduino pardal olev toiteregulaator tarnib 5 V mitmel tihvtil, nii et ma kasutasin ühte neist Trellis. See päästis mind regulaatoriahela kilbile panemisest.

Panin siis PCB välja. Kasutasin mõningaid leitud ressursse, et saada tihvtide paigutamiseks täpsed mõõtmised, et vastata Arduino Uno päistele. Natuke hoolsust ja see sobis esimesel katsel. Kilbiringis pole palju, nii et mul oli palju ruumi. Ma panin LED-koormustele laiad jäljed, nii et minu vajadustele oleks piisavalt voolu kandevõimet. Panin MOSFETid paika, kuhu neid saaks tasaseks paigaldada, jahutusradiaatoritega või ilma. Siiani pole ma vajanud jahutusradiatoreid kasutatud LED -ide arvu järgi, kuid vajadusel on ruumi.

Lisasin ka augud, mis sobitusid trellide kinnitusavadega, et saaksin trellide kinnitamiseks oma kilbi külge kinnitada. Kui kilp on ühendatud Arduinoga ja trellid on riputatud kilbi kohal seisma, peaks kõik olema kena ja kindel.

Seejärel printisin tahvli paigutuse ja liimisin selle vahtpõhja tüki külge ning sisestasin oma osad, et veenduda, kas kõik sobib. Kõik korras, saatsin tellimuse ära.

Seejärel asusin korpuse kallale. Fusion 360 abil kujundasin lihtsa korpuse, mis sisaldas kolme tahvlit (Arduino Uno, kilp ja trellis). Korpuses olevad augud võimaldavad ühendada Arduino USB -pordiga ja loomulikult juurdepääsu LED -ribaühendusele ja varjestada toitepistikut. Arduino toitepistik on korpusega kaetud, et seda ei kasutataks. Pärast paari katsetamiseks sobivat prototüüpi sain lõpuks disaini, millega jäin rahule. Olen postitanud korpuse STL -failid Thingiverse'i.

Tulevikus teen plaadi versiooni, mille külge saab otse ühendada Nano. See muudaks projekti veelgi kompaktsemaks. Kuni selle ajani võite kasutada ka Nano -Uno kilpadapterit.

Kui kavatsete kilpi teha, on teil lisaks 1. etapis mainitud osadele vaja järgmist.

  • RGB LED -draiverikilbi PC -plaat (ExpressPCB -lt või muult; faile saate alla laadida minu Githubi repost projekti jaoks);
  • Diood 1N4002;
  • 100uF 25V radiaalne elektrolüütkondensaator (suure LED -koormuse korral kasutage 220uF või 470uF);
  • Toitepistik, PJ202-AH (mudel 5A).

Järgmised osad on valikulised:

  • 3 mm LED - mis tahes värvi, juhtlambi jaoks (võib ära jätta)
  • 1500 oomi takisti - vajalik ainult LED -juhtlambi kasutamisel

Soovitan: