Kazalo:

Programabilni RGB LED zaporedje (z uporabo Arduino in Adafruit Trellis): 7 korakov (s slikami)
Programabilni RGB LED zaporedje (z uporabo Arduino in Adafruit Trellis): 7 korakov (s slikami)

Video: Programabilni RGB LED zaporedje (z uporabo Arduino in Adafruit Trellis): 7 korakov (s slikami)

Video: Programabilni RGB LED zaporedje (z uporabo Arduino in Adafruit Trellis): 7 korakov (s slikami)
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Julij
Anonim
Image
Image
Povežite vozniško ploščo
Povežite vozniško ploščo

Moji sinovi so želeli, da bi njihove mize osvetlili barvni LED trakovi, jaz pa nisem hotel uporabiti krmiljenega RGB tračnega krmilnika, ker sem vedel, da se jim bodo dolgočasili fiksni vzorci, ki jih imajo ti krmilniki. Mislil sem tudi, da bi bila to odlična priložnost, da bi jim ustvarili učno orodje, s katerim bi lahko izostrili veščine programiranja in elektronike, ki sem jih jih učil. To je rezultat.

Pokazal vam bom, kako sestaviti ta preprost, programabilni krmilnik LED trakov RGB z uporabo Arduino Uno (ali Nano), Adafruit Trellis in peščice drugih delov.

Adafruit Trellis je ena mojih najljubših novih igrač Lady Ada in posadke. Najprej je to samo 9,95 USD za ploščo in še 4,95 USD za silikonsko gumo iz elastomera (cene od tega pisanja). To je veliko za 16-gumbno matriko 4x4 z možnostjo LED. Ni opremljen z vgrajenimi LED diodami, ki jih morate dobaviti, vendar vam daje fleksibilnost pri izbiri želenih barv (in zmanjšuje stroške in kompleksnost v primerjavi z vgradnjo naslovljivih LED). Za izgradnjo tega projekta, kot je moj, boste potrebovali peščico 3 mm LED. Uporabil sem 2 rdeča, 2 zelena, 2 modra, 4 rumena in 6 bela.

Trellis uporablja I2C za komunikacijo, zato za upravljanje 16 gumbov in 16 LED potrebuje le dva V/I zatiča (podatki in ura).

Strojni del tega projekta lahko izvedete na majhni proto plošči, tako sem naredil svoj prototip. Hitro sem spoznal, da na njihovih mizah potrebujem nekaj bolj urejenega in vsebovanega (goli Arduino in proto plošča, ki bi udarjala naokoli, bi bili preveč krhki), zato sem naredil svoj ščit za pogon LED trakov. Navodila in datoteke za gradnjo ščita so vključeni v zadnji korak.

Voznik uporablja tri IRLB8721 MOSFET -e in tri upore. Za vožnjo boste seveda potrebovali LED trak; skoraj vsak navaden 12V RGB LED trak bo ustrezal. To so preproste LED diode, kot so SMD 5050, ne pa modne, ki jih je mogoče individualno nasloviti (brez NeoPixels itd.)-to je še en projekt! Potrebujete tudi 12V napajalnik, ki je dovolj velik, da poganja število LED, ki jih nameravate uporabljati.

Če povzamemo, tukaj so osnovne potrebe strojne opreme za ta projekt:

  • En Arduino Uno ali Nano (ta navodila so za Uno z nameščenimi ženskimi glavami, vendar Nano na plošči deluje dobro) (Adafruit, Amazon, Mouser);
  • Ena plošča Adafruit Trellis in silikonska podloga za gumb (Adafruit);
  • Trije IRLB8721 N-kanalni MOSFET-i (Adafruit, Amazon, Mouser);
  • Trije upori 1K (Amazon, Mouser);
  • Trije 220 ohmski upori (Amazon, Mouser)
  • Ena majhna proto plošča (moja prva je bila 1/4 velikosti-izberite poljubno velikost, s katero lahko udobno delate) (Adafruit, Amazon);
  • 12V RGB LED trak (SMD 5050) (Adafruit, Amazon);
  • 12V napajanje - izberite moč, ki ustreza številu LED, ki jih nameravate poganjati.

Zahtevana zavrnitev odgovornosti: zgornje povezave so namenjene vašemu udobju in ne podpirajo nobenega izdelka ali prodajalca; prav tako nimam koristi od nakupov na teh povezavah. Če imate prodajalce, ki so vam bolj všeč, jih vsekakor podprite!

Začnimo…

1. korak: Povežite vozniško ploščo

Povežite vozniško ploščo
Povežite vozniško ploščo

Tukaj je vezje gonilnika LED. To je zelo preprosto. Za vsak kanal na LED traku uporablja IRBLxxx N-kanalni MOSFET. LED trak je skupna anoda, kar pomeni, da se +12V pošlje na LED trak, rdeče, zelene in modre LED kanale pa nadzorujemo tako, da ozemljimo ustrezno povezavo s trakom. Tako bomo odtok MOSFET -ov povezali z LED barvnimi kanali, vir pa na zemljo. Vrata bodo priključena na digitalne izhode Arduino, upori pa zagotavljajo spuščanje, ki zagotavlja, da se vsak MOSFET po potrebi popolnoma vklopi ali izklopi.

Arduino ponuja pulzno-širinsko modulacijo na nekaterih svojih digitalnih izhodih, zato bomo uporabili te izhode (zlasti D9, D10, D11), tako da je mogoče nadzorovati intenzivnost vsakega barvnega kanala.

Če ste zmedeni, kaj naj povežete na MOSFET -ove IRLB8721, držite enega v roki s sprednjo stranjo obrnjeno proti sebi, kot je prikazano na zgornji fotografiji. Zatič na levi strani (zatič 1) je vrata in se bo povezal z digitalnim izhodnim zatičem Arduino in uporom (drugi konec upora mora biti povezan z maso). Zatič na sredini (pin 2) je odtok in se poveže z barvnim kanalom LED traku. Pin na desni (pin 3) je vir in je povezan z maso. Ne pozabite spremljati, kateri tranzistor se poveže s katerim LED -barvnim kanalom.

Ne bom se spuščal v podrobnosti, kako spajkati proto plošče. Iskreno, sovražim in nisem dober v tem. V dobrem ali slabem pa deluje in to je hiter in umazan način, da dobite trden prototip ali enkrat. Moja prva tabla je prikazana tukaj.

To bi lahko tudi popravili. Vsekakor bi bilo hitreje kot spajkanje vsega na proto plošči, vendar manj trajno.

Ko povežete gonilnik, priključite vhode vrat MOSFET na digitalne izhodne zatiče Arduino: D9 za zeleni kanal, D10 za rdeči kanal in D11 za modri kanal. LED trak priključite tudi na proto ploščo.

Prepričajte se tudi, da ima vaša vozniška plošča ločeno povezavo od tal do enega od ozemljitvenih zatičev Arduino.

Nazadnje, za napajanje LED priključite negativni (ozemljitveni) vod 12 -voltnega napajanja na ozemljitev na voznikovi plošči. Nato priključite pozitivni vod 12V napajanja na anodni vodnik vašega LED traku (to je črna žica na mojih kablih, prikazana na sliki).

Na koncu sem oblikoval ščit za PC ploščo, ki se namesti na Uno in ima tudi pritrdilno podporo za Trellis. To je zagotovilo veliko bolj končni izdelek. Če želite to narediti, lahko preskočite uporabo proto plošče, kot je opisano tukaj, in naredite ploščo ščita. Vse je opisano v zadnjem koraku.

Korak: Postavite LED diode na rešetko

Postavite LED diode na rešetko
Postavite LED diode na rešetko

Plošča Trellis ima prazne blazinice za 3 mm LED diode, ki jih bomo morali napolniti. Pazljivo upoštevajte simbole na blazinicah-poleg blazinice je zelo subtilen znak "+", ki označuje stran anode. Če ploščo držite tako, da je besedilo z desno stranjo navzgor, je na vrhu in na dnu plošče tudi zapis, ki opozarja, da so LED anode na levi.

Spajate 3 mm LED diode na ploščo. Če pogledamo sprednjo stran plošče, besedilo na desni strani navzgor, zgornje levo stikalo/položaj LED je #1, zgornji desni je #4, spodnji levi je #13, spodnji desni pa #16. Tu so barve, ki sem jih uporabil v vsakem položaju (in obstaja razlog, zato vam svetujem, da sledite mojemu vzorcu vsaj za zgornji dve vrstici):

1 - rdeča2 - zelena3 - modra4 - bela5 - rdeča6 - zelena7 - modra8 - bela9 - bela10 - bela11 - rumena12 - rumena13 - bela14 - bela15 - rumena16 - rumena

CC Attribution: Zgornjo sliko Trellis je Adafruit in uporablja pod licenco Creative Commons - Attribution/ShareAlike.

Korak: Priključite rešetko na Arduino

Priključite rešetko na Arduino
Priključite rešetko na Arduino

Trellis ima pet ožičnih blazinic, vendar se v tem projektu uporabljajo le štiri. Trellis potrebuje SDA in SCL za komunikacijo z Arduinom (z uporabo I2C) ter 5V in GND za napajanje. Zadnja blazinica, INT, se ne uporablja. Trellis blazinice se pojavijo na vseh štirih robovih plošče. Uporabite lahko poljuben nabor blazinic.

Spajajte trdno medsebojno povezano žico na blazinice 5V, GND, SDA in SCL. Nato priključite 5V žico na 5V pin na Arduinu, GND na ozemljitveni zatič, SDA žico na A4 in SCL žico na A5.

Nato bomo vklopili Arduino in vanj naložili skico. Zdaj je pravi čas, da silikonsko ploščico z gumbi postavite na ploščo Trellis. Samo sedi na deski (upoštevajte "gumbe" na dnu blazinice, ki se prilegajo luknjam na plošči), zato boste morda želeli uporabiti nekaj kosov traku, da držite robove blazinice na deski za zdaj.

CC Attribution: Zgornja slika ožičenja Trellis je obrezana različica te slike podjetja Adafruit in se uporablja pod licenco Creative Commons - Attribution/ShareAlike.

4. korak: Prenesite skico projekta in jo naložite v Arduino

Skico lahko prenesete iz mojega repo za Github za ta projekt.

Ko ga dobite, ga odprite v Arduino IDE, povežite Arduino s kablom USB in naložite skico v Arduino.

Če je skica naložena in je rešetka pravilno priključena, mora pritisniti kateri koli gumb na rešetki trikrat hitro. To je znak, da ste pritisnili neveljaven gumb, ker se sistem prikaže v stanju "izklop", zato je edini veljaven pritisk tipke potreben za vklop.

Če želite vklopiti sistem, pritisnite in držite spodnji levi gumb (#13) vsaj eno sekundo. Ko spustite gumb, bi morale na kratko zasvetiti vse LED diode, nato pa ugasneta spodnji dve vrstici, razen #13 (spodaj levo). Sistem je zdaj v stanju napajanja in mirovanja.

Zgornji dve vrstici lahko poskusite posvetliti in zatemniti LED -kanale kot prvi test. Če to deluje, lahko nadaljujete z naslednjim korakom. Če ne, preverite:

  1. LED napajanje je priključeno in vklopljeno;
  2. MOSFET -ji gonilniške plošče so pravilno ožičeni. Če uporabljate iste IRLB8721, ki sem jih uporabil, preverite:

    • Signalni vhodi vozniške plošče (vrata MOSFET, IRLB8721 pin 1) so priključeni na Arduino D9 = zelena, D10 = rdeča, D11 = modra (glej opombo spodaj);
    • LED trak je priključen na voznikovo ploščo, LED -barvni kanali pa na odvode MOSFET (IRLB8721 pin 2);
    • Zatiči vira MOSFET (IRLB8721 pin 3) so povezani z maso na voznikovi plošči;
  3. Ozemljitvena povezava med voznikovo ploščo in ozemljitvenim zatičem Arduino.

V naslednjem koraku se bomo poigrali z nekaterimi funkcijami uporabniškega vmesnika gumbov.

OPOMBA: Če vaš krmilnik deluje, vendar gumbi za intenzivnost ne nadzorujejo pravih barv, ne skrbite in ne povezujte znova! Pojdite v Sketch v Arduino IDE in spremenite RDEČE, ZELENE in MODRE definicije pin na vrhu datoteke.

5. korak: Osnovne nadzorne funkcije

Osnovne nadzorne funkcije
Osnovne nadzorne funkcije

Zdaj, ko je sistem vklopljen, se lahko igramo z nekaterimi gumbi in naredimo stvari.

Kot sem rekel v prejšnjem koraku, sistem ob vklopu preide v stanje mirovanja. V tem stanju lahko z gumbi v zgornjih dveh vrsticah povečate in zmanjšate intenzivnost barve vsakega od rdečih, zelenih in modrih LED -kanalov. Če uporabljate bele gumbe za povečanje/zmanjšanje, sistem enako in na enaki ravni poveča ali zmanjša intenzivnost vseh treh kanalov.

Spodnji dve vrstici se uporabljata za predvajanje prednastavljenih vzorcev. Ti vzorci so shranjeni v Arduinovem EEPROM -u. Ko se skica prvič zažene, vidi, da EEPROM nima shranjenih vzorcev, in shrani nabor privzetih vzorcev. Nato lahko te vzorce spremenite in vaše spremembe se shranijo v EEPROM -ju Arduina, ki nadomešča prednastavljeni vzorec. To zagotavlja, da vaši vzorci preživijo prekinitve napajanja. Funkcija urejanja je opisana v naslednjem koraku.

Za zdaj na kratko pritisnite katerega koli od prednastavljenih gumbov (osem gumbov v spodnjih dveh vrsticah), da zaženete vzorec, shranjen za ta gumb. Med izvajanjem vzorca gumb utripa. Če želite vzorec ustaviti, znova na kratko pritisnite gumb za vzorec. Med izvajanjem vzorca lahko z belimi gumbi gor/dol v zgornjih vrsticah spremenite stopnjo vzorcev.

Če za nekaj sekund pustite projekt pri miru, ne da bi se dotaknili katerega koli gumba, boste opazili, da LED diode zatemnijo. To je namenjeno varčevanju z energijo in preprečevanju, da bi Trellis preveč osvetlil "razpoloženje", ki ga poskušajo ustvariti LED. Z dotikom gumba na rešetki ga boste prebudili.

Če želite izklopiti sistem, pritisnite in držite spodnji levi gumb (#13) eno ali več sekund in ga spustite. Rešetka in LED trak bosta temna.

6. korak: Urejanje vzorcev na tipkovnici

Urejanje vzorcev na tipkovnici
Urejanje vzorcev na tipkovnici

Kot sem rekel v prejšnjem koraku, skica shrani osem privzetih vzorcev v EEPROM ob prvem zagonu. 7 teh vzorcev lahko spremenite v kaj drugega, če želite uporabiti način za urejanje vzorcev na tipkovnici.

Če želite vstopiti v način urejanja vzorcev, se najprej odločite, za kateri gumb želite urediti vzorec. Izberete lahko kateri koli gumb razen spodnjega levega gumba. V način za urejanje vzorca vstopite z dolgim pritiskom (držite več kot eno sekundo) na izbranem gumbu za vzorec. Ko spustite gumb, sveti neprekinjeno, zgornji dve vrstici pa začneta utripati. To pomeni, da ste v načinu urejanja.

Način urejanja se začne na prvem koraku vzorca in se nadaljuje, dokler ne zapustite urejanja ali dokončate urejanja 16. koraka (največ 16 korakov na vzorec). Na vsakem koraku z gumboma za intenzivnost kanala v zgornjih dveh vrsticah izberite želeno barvo za ta korak. Nato kratko pritisnite gumb za prednastavitev vzorca, da shranite to barvo in se premaknete na naslednji korak. Na zadnjem koraku namesto kratkega pritiska samo dolg pritisk za izhod iz urejanja.

Ko zapustite urejanje vzorca, se vzorec samodejno predvaja.

To je to! Zdaj imate krmilnik LED RGB, ki bo zaporedje vzorcev, ki jih lahko programirate prek tipkovnice. Tu se lahko ustavite ali če želite zgraditi bolj formalno različico tega projekta, nadaljujte s preostalimi koraki.

7. korak: Boljša strojna oprema: RGB LED gonilniški ščit in ohišje

Image
Image
Boljša strojna oprema: RGB LED gonilniški ščit in ohišje
Boljša strojna oprema: RGB LED gonilniški ščit in ohišje
Boljša strojna oprema: RGB LED gonilniški ščit in ohišje
Boljša strojna oprema: RGB LED gonilniški ščit in ohišje

Ko sem imel delujoč prototip, sem vedel, da ne morem pustiti golega Arduina in proto plošče na mizah svojih otrok kot trajno rešitev. Za projekt sem potreboval ohišje. Odločil sem se tudi, da bom naredil boljšo vozniško tablo, in menil sem, da je to odlična priložnost, da si naredim svoj ščit.

Svojo shemo papirja sem očistil tako, da sem jo vnesel v ExpressSCH, brezplačno orodje, ki ga ponuja ExpressPCB, izdelovalec plošč, ki ponuja poceni kratke serije majhnih PC plošč. ExpressPCB uporabljam že več kot desetletje pri projektih, vsekakor pa uporabite katero koli orodje in izdelovalca.

Osnovni shemi sem dodal nekaj majhnih funkcij, da bi dobro delovala kot ščit za ta projekt. Dodal sem ožične ploščice za povezavo Trellis, vtičnico, pilotno svetilko in priključek za LED trak. Dodal sem tudi mesto za kondenzator čez napajalnik. Končni krog je prikazan tukaj.

Odločil sem se, da mora moč za projekt izhajati iz ščita. 12V, dobavljen na ščit, napaja LED trak in Arduino. Napajanje na Arduino je zagotovljeno s priključitvijo napajalnega vhoda na vmesnik Arduino VIN, ki je dvosmerni (na ta pin lahko napajate Arduino, ali če napajanje priključite na Arduino drugje, vam bo dal vklopite ta pin). Zaščitna dioda D1 preprečuje, da bi napajanje, priključeno neposredno na Arduino (npr. USB), poskušalo napajati LED.

Zakaj ne bi uporabili vtičnice za Arduino in samo priključili 12V? Medtem ko bi lahko napajalni vtičnici Arduino napajal 12V in uporabil pin VIN, da bi to moč dobil za ščit, me je skrbelo, da dioda D1 in sledi Arduina ne bodo dosegli visokih tokov, ki so možni pri poganjanju LED trakovi. Odločil sem se, da bo moj ščit prevzel vhodno moč in namesto tega napajal Arduino. Za Trellis sem potreboval tudi 5V, vendar vgrajena regulacija napajanja Arduino napaja 5V na več zatičev, zato sem enega od njih uporabil za Trellis. To me je rešilo, da sem na ščit postavil regulatorno vezje.

Nato sem postavil tiskano vezje. Uporabil sem nekaj virov, ki sem jih našel, da sem dobil natančne meritve za namestitev zatičev, ki ustrezajo naslovom na Arduino Uno. Malo pridnosti in se je ujemalo že v prvem poskusu. V samem ščitnem krogu ni veliko, zato sem imel dovolj prostora. Za obremenitve LED sem postavil široke sledi, tako da bi bilo za moje potrebe dovolj nosilnosti toka. MOSFET -e sem nastavil tako, da jih je mogoče pritrditi ravno, s hladilniki ali brez njih. Doslej za število LED, ki sem jih uporabljal, nisem potreboval hladilnikov, vendar je prostor tam, če je potrebno.

Dodal sem tudi luknje, ki se ujemajo z montažnimi luknjami na rešetki, tako da sem lahko uporabil stojala za namestitev rešetke na ščit. Ko je ščit priključen na Arduino in je Trellis obešen na stojalih nad ščitom, bi moralo biti vse lepo in trdno.

Nato sem natisnil postavitev plošče in jo prilepil na kos penastega jedra ter vstavil svoje dele, da se prepričam, da vse ustreza. Vse v redu, zato sem naročilo poslal.

Nato sem začel delati na ohišju. Z uporabo Fusion 360 sem oblikoval preprosto ohišje, ki vsebuje tri plošče (Arduino Uno, ščit in Trellis). Luknje v ohišju omogočajo povezavo z vrati Arduino USB in seveda dostop do priključka za LED trak in vtičnice za zaščito. Arduino vtičnica je pokrita z ohišjem, da se zagotovi, da se ne uporablja. Po nekaj prototipih za preskusno montažo sem končno dobil zasnovo, s katero sem bil zadovoljen. Datoteke STL za ohišje sem objavil v Thingiverse.

V prihodnosti bom naredil različico plošče, na katero je mogoče neposredno priključiti Nano, s čimer bi bil projekt še bolj kompakten. Do takrat bi lahko uporabili tudi takšen adapter za zaščito Nano do Uno.

Če boste delali ščit, boste poleg delov, omenjenih v 1. koraku, potrebovali še naslednje:

  • RGB LED Driver Shield PC plošča (iz ExpressPCB ali drugih; datoteke lahko prenesete iz mojega repo za Github za projekt);
  • Dioda 1N4002;
  • Radialni elektrolitski kondenzator 100uF 25V (pri veliki obremenitvi LED uporabite 220uF ali 470uF);
  • Vtičnica, PJ202-AH (model z oceno 5A).

Naslednji deli so neobvezni:

  • 3 mm LED - katere koli barve, za pilotno svetilko (lahko izpustite)
  • 1500 ohmski upor - potreben samo, če uporabljate LED pilotno svetilko

Priporočena: