Sadržaj:

Programabilni RGB LED sekvencer (koristeći Arduino i Adafruit Trellis): 7 koraka (sa slikama)
Programabilni RGB LED sekvencer (koristeći Arduino i Adafruit Trellis): 7 koraka (sa slikama)

Video: Programabilni RGB LED sekvencer (koristeći Arduino i Adafruit Trellis): 7 koraka (sa slikama)

Video: Programabilni RGB LED sekvencer (koristeći Arduino i Adafruit Trellis): 7 koraka (sa slikama)
Video: TX81Z Arduino MIDI-контроллер/редактор 2024, Srpanj
Anonim
Image
Image
Ožičite upravljačku ploču
Ožičite upravljačku ploču

Moji su sinovi htjeli LED trake u boji kako bi osvijetlile njihove stolove, a ja nisam htio koristiti konzervirani RGB kontroler jer sam znao da će im dosaditi fiksni uzorci koje ovi kontroleri imaju. Također sam mislio da bi to bila izvrsna prilika za njih stvoriti nastavni alat koji bi mogli upotrijebiti za izoštravanje vještina programiranja i elektronike kojima sam ih podučavao. Ovo je rezultat.

Pokazat ću vam kako izgraditi ovaj jednostavan, programabilni RGB LED kontroler s trakama koristeći Arduino Uno (ili Nano), Adafruit Trellis i pregršt drugih dijelova.

Adafruit Trellis jedna je od mojih omiljenih novih igračaka Lady Ada i ekipe. Prije svega, to je samo 9,95 USD za ploču, i još 4,95 USD za silikonsku podlogu od gume od elastomera (cijene od ovog pisanja). To je sjajno za matricu sa 16 tipki 4x4 sa LED sposobnošću. Ne dolazi s ugrađenim LED diodama, morate ih nabaviti, ali to vam daje fleksibilnost u odabiru boja koje želite (i smanjuje troškove i složenost u odnosu na ugradnju adresabilnih LED dioda). Za izgradnju ovog projekta poput mog trebat će vam pregršt LED dioda od 3 mm. Koristio sam 2 crvene, 2 zelene, 2 plave, 4 žute i 6 bijelih.

Trellis koristi I2C za komunikaciju pa su mu potrebna samo dva I/O pina (podaci i sat) za upravljanje 16 gumba i 16 LED dioda.

Hardverski dio ovog projekta možete napraviti na maloj proto ploči, tako sam i napravio svoj prototip. Brzo sam shvatio da mi treba nešto urednije i sadržanije na njihovim stolovima (goli Arduino i proto ploča koji lupaju okolo bili bi previše krhki), pa sam napravio vlastiti štit za pogon LED traka. Upute i datoteke za izgradnju štita uključene su u posljednji korak.

Upravljački program koristi tri IRLB8721 MOSFET -a i tri otpornika. I naravno, za vožnju će vam trebati LED traka; otprilike će poslužiti bilo koja obična 12V RGB LED traka. To su jednostavne LED diode, poput SMD 5050, a ne otmjene s individualnom adresom (bez NeoPixela itd.)-to je još jedan projekt! Također vam je potrebno 12V napajanje dovoljno veliko da poveća broj LED dioda koje namjeravate koristiti.

Dakle, da rezimiramo, evo osnovnih hardverskih potreba za ovaj projekt:

  • Jedan Arduino Uno ili Nano (ove upute su za Uno sa instaliranim ženskim zaglavljima, ali Nano na ploči radi dobro) (Adafruit, Amazon, Mouser);
  • Jedna ploča Adafruit Trellis i silikonska podloga za gumb (Adafruit);
  • Tri IRLB8721 N-kanalna MOSFET-a (Adafruit, Amazon, Mouser);
  • Tri 1K otpornika (Amazon, Mouser);
  • Tri otpornika od 220 ohma (Amazon, Mouser)
  • Jedna mala proto ploča (moja prva je bila 1/4 veličine-odaberite bilo koju veličinu s kojom možete udobno raditi) (Adafruit, Amazon);
  • 12V RGB LED traka (SMD 5050) (Adafruit, Amazon);
  • 12V napajanje - odaberite snagu koja odgovara broju LED dioda koje namjeravate pokretati.

Potrebno odricanje od odgovornosti: gore navedene veze pružaju se radi vaše udobnosti i ne podržavaju bilo koji proizvod ili dobavljača; niti ja profitiram od bilo kakve kupnje izvršene na ovim linkovima. Ako imate dobavljače koji vam se više sviđaju, svakako ih podržite!

Započnimo…

Korak 1: Povežite upravljačku ploču

Ožičite upravljačku ploču
Ožičite upravljačku ploču

Ovdje je krug LED upravljačkog programa. Vrlo je jednostavno. Za svaki kanal na LED traci koristi IRBLxxx N-kanalni MOSFET. LED traka je uobičajena anoda, što znači da se +12V šalje na LED traku, a crveni, zeleni i plavi LED kanali se kontroliraju osiguravanjem uzemljenja na odgovarajućoj vezi s trakom. Dakle, spojit ćemo odvod MOSFET -ova na LED kanale u boji, a izvor na masu. Vrata će biti spojena na Arduino digitalne izlaze, a otpornici osiguravaju povlačenje koje osigurava da se svaki MOSFET potpuno uključuje ili isključuje prema potrebi.

Arduino nudi modulaciju širine impulsa na nekim svojim digitalnim izlazima, pa ćemo koristiti te izlaze (posebno D9, D10, D11) kako bi se mogao kontrolirati intenzitet svakog kanala u boji.

Ako ste zbunjeni što spojiti gdje na IRLB8721 MOSFET -ovima, držite jedan u ruci s prednjim dijelom okrenutim prema vama kao što je prikazano na gornjoj fotografiji. Pin na lijevoj strani (pin 1) su vrata i povezat će se s Arduino digitalnim izlaznim pinom i otpornikom (drugi kraj otpornika trebao bi se spojiti na masu). Igla u sredini (iglica 2) je odvod i spaja se na kanal u boji LED trake. Pin na desnoj strani (pin 3) je izvor i spojen je na masu. Pazite koji tranzistor se spaja na koji LED kanal u boji.

Neću ulaziti u detalje kako lemiti proto ploče. Iskreno, mrzim to i nisam dobar u tome. No, u dobru i zlu, to funkcionira i brz je i prljav način za napraviti solidan prototip ili jednokratno. Ovdje je prikazana moja prva ploča.

Mogli biste i ovo unaprijediti. Sigurno bi bilo brže nego lemiti sve na proto ploči, ali manje trajno.

Nakon što povežete upravljački program, spojite ulaze MOSFET vrata na Arduino digitalne izlazne pinove: D9 za zeleni kanal, D10 za crveni kanal i D11 za plavi kanal. Spojite LED traku i na svoju matičnu ploču.

Također, provjerite ima li vaša upravljačka ploča zasebnu vezu od uzemljenja s jednim od Arduinovih uzemljivača.

Konačno, za napajanje LED -a, spojite negativni (uzemljeni) vod 12 -voltnog napajanja na masu na vašoj upravljačkoj ploči. Zatim spojite pozitivni vod 12V napajanja na anodni dio vaše LED trake (ovo je crna žica na mojim kabelima prikazana na slici).

Na kraju sam dizajnirao štit za PC ploču koji se montira na Uno, a također ima i montažnu podršku za Trellis. Time je postignut mnogo gotov konačni proizvod. Ako želite to učiniti, mogli biste preskočiti korištenje proto ploče kako je ovdje opisano i jednostavno izraditi ploču štita. Sve je opisano u posljednjem koraku.

Korak 2: Postavite LED diode na rešetku

Stavite LED diode na rešetku
Stavite LED diode na rešetku

Ploča Trellis ima prazne podloge za LED diode od 3 mm koje ćemo morati napuniti. Pažljivo obratite pažnju na simbole na jastučićima-pored jastučića nalazi se vrlo suptilan "+" za označavanje anodne strane. Ako ploču držite tako da je tekst s desne strane prema gore, na vrhu i dnu ploče nalazi se i oznaka koja upozorava da su LED anode s lijeve strane.

Lemite svoje 3 mm LED diode na ploču. Gledajući prednji dio ploče, tekst s desne strane prema gore, gornji lijevi prekidač/LED položaj je #1, gornji desni je #4, donji lijevi je #13, a donji desni je #16. Evo boja koje sam koristio u svakom položaju (i postoji razlog zašto, pa vam savjetujem da slijedite moj uzorak barem za gornja dva reda):

1 - crvena2 - zelena3 - plava4 - bijela5 - crvena6 - zelena7 - plava8 - bijela9 - bijela10 - bijela11 - žuta12 - žuta13 - bijela14 - bijela15 - žuta16 - žuta

CC Attribution: Gornju Trellis sliku je Adafruit i koristi pod Creative Commons - Attribution/ShareAlike licencom.

Korak 3: Spojite rešetku na Arduino

Spojite rešetku na Arduino
Spojite rešetku na Arduino

Trellis ima pet jastučića za ožičenje, ali samo četiri se koriste u ovom projektu. Trellisu su potrebni SDA i SCL za komunikaciju s Arduinom (koristeći I2C), te 5V i GND za napajanje. Posljednji uložak, INT, se ne koristi. Trellis jastučići pojavljuju se na sva četiri ruba ploče. Možete koristiti bilo koji set jastučića koji želite.

Lemite čvrstu međusobno spojenu žicu na jastučiće 5V, GND, SDA i SCL. Zatim spojite 5V žicu na 5V pin na Arduinu, GND na pin za uzemljenje, SDA žicu na A4, a SCL žicu na A5.

Zatim ćemo uključiti Arduino i prenijeti skicu na njega. Sada je dobro vrijeme da stavite silikonsku podlogu za gumbe na ploču Trellis. Samo sjedi na ploči (imajte na umu "nubs" na dnu jastučića koji se uklapaju u rupe na ploči), pa ćete možda htjeti upotrijebiti nekoliko komada trake za držanje rubova podloge na ploči za sada.

CC Attribution: Gornja slika ožičenja Trellis izrezana je verzija ove slike od strane Adafruit -a i koristi se pod licencom Creative Commons - Attribution/ShareAlike.

Korak 4: Preuzmite skicu projekta i prenesite je na Arduino

Skicu možete preuzeti iz mog Github repoa za ovaj projekt.

Kad ga nabavite, otvorite ga u Arduino IDE -u, spojite Arduino pomoću USB kabela i prenesite skicu na Arduino.

Ako je skica učitana i rešetka pravilno povezana, bilo koja tipka na rešetki trebala bi brzo treptati tri puta kada se pritisne. Ovo je pokazatelj da ste pritisnuli nevažeći gumb jer se sustav pojavljuje u stanju "isključeno", pa je jedini važeći pritisak potreban za uključivanje.

Za uključivanje sustava pritisnite i držite donju lijevu tipku (#13) najmanje jednu sekundu. Kad otpustite gumb, sve LED diode trebale bi se kratko zasvijetliti, a zatim će se donja dva reda ugasiti, osim #13 (dolje lijevo). Sustav je sada u uključenom stanju i stanju mirovanja.

Kao prva ispitivanja možete pokušati upotrijebiti dva gornja reda za posvjetljivanje i zatamnjenje LED kanala. Ako to radi, dobro je da prijeđete na sljedeći korak. Ako ne, provjerite:

  1. LED napajanje je spojeno i uključeno;
  2. MOSFET -ovi upravljačke ploče ispravno su ožičeni. Ako koristite iste IRLB8721 koje sam i ja koristio, provjerite:

    • Signalni ulazi upravljačke ploče (vrata MOSFET -a, IRLB8721 pin 1) spojeni su na Arduino D9 = zeleno, D10 = crveno, D11 = plavo (vidi napomenu ispod);
    • LED traka je spojena na upravljačku ploču, a LED kanali u boji spojeni su na MOSFET odvode (IRLB8721 pin 2);
    • Igle izvora MOSFET -a (IRLB8721 pin 3) spojene su na masu na upravljačkoj ploči;
  3. Uzemljenje između ploče vozača i Arduino uzemljenja.

U sljedećem koraku igrat ćemo se s nekim od funkcija korisničkog sučelja tipkovnice.

NAPOMENA: Ako vaš kontroler radi, ali gumbi za intenzitet ne kontroliraju prave boje, ne brinite i nemojte ponovno povezivati! Samo uđite u Sketch u Arduino IDE -u i izmijenite RED, ZELENU i PLAVU definiciju pin -a pri vrhu datoteke.

Korak 5: Osnovne upravljačke funkcije

Osnovne upravljačke funkcije
Osnovne upravljačke funkcije

Sada kada je sustav uključen, možemo se igrati s nekim gumbima i natjerati ga da radi neke stvari.

Kao što sam rekao u prethodnom koraku, kada se uključi, sustav dolazi u stanje "mirovanja". U tom stanju možete koristiti gumbe na gornja dva reda za povećanje i smanjenje intenziteta boje svakog od crvenih, zelenih i plavih LED kanala. Ako koristite bijele gumbe za povećanje/smanjenje, sustav povećava ili smanjuje intenzitet sva tri kanala jednako i na jednakim razinama.

Dva donja reda služe za reprodukciju unaprijed postavljenih uzoraka. Ovi uzorci pohranjeni su u Arduinovom EEPROM -u. Prilikom skice po prvi put, vidi da EEPROM nema pohranjene uzorke i pohranjuje skup zadanih uzoraka. Nakon toga možete promijeniti ove uzorke, a vaše se promjene pohranjuju u EEPROM -u Arduina, zamjenjujući unaprijed postavljeni uzorak. To osigurava da vaši obrasci prežive nestanke struje. Funkcija uređivanja opisana je u sljedećem koraku.

Za sada kratko pritisnite bilo koji od unaprijed postavljenih gumba (osam gumba u donja dva reda) da biste pokrenuli uzorak pohranjen za taj gumb. Gumb treperi dok uzorak radi. Da biste zaustavili uzorak, ponovno kratko pritisnite gumb uzorka. Dok je uzorak pokrenut, bijeli gumbi gore/dolje u gornjim redovima mogu se koristiti za promjenu stope uzorka.

Ako ostavite projekt na miru nekoliko sekundi bez dodirivanja bilo koje tipke, primijetit ćete da se LED diode prigušuju. Ovo služi i za uštedu energije i za izbjegavanje da Trellis previše osvijetli bilo kakvo "raspoloženje" koje LED diode pokušavaju stvoriti. Dodir gumba na rešetki probudit će ga.

Za isključivanje sustava pritisnite i držite donju lijevu tipku (#13) jednu ili više sekundi i otpustite. Rešetka i LED traka postat će tamni.

Korak 6: Uređivanje uzoraka na tipkovnici

Uređivanje uzoraka na tipkovnici
Uređivanje uzoraka na tipkovnici

Kao što sam rekao u prethodnom koraku, skica sprema osam zadanih uzoraka u EEPROM pri prvom pokretanju. Možete promijeniti 7 od ovih uzoraka u nešto drugo ako želite koristiti način uređivanja uzoraka na tipkovnici.

Za ulazak u način uređivanja uzoraka najprije odlučite za koji gumb želite urediti uzorak. Možete odabrati bilo koji gumb osim donjeg lijevog gumba. Uđite u način uređivanja uzoraka dugim pritiskom (zadržite više od jedne sekunde) na gumbu odabranog uzorka. Kad se otpusti, gumb će zasvijetliti, a gornja dva reda počet će treperiti. To znači da ste u načinu uređivanja.

Način uređivanja započinje u prvom koraku uzorka i nastavlja se sve dok ne izađete iz uređivanja ili dovršite uređivanje 16. koraka (najviše 16 koraka po uzorku). U svakom koraku pomoću gumba za intenzitet kanala u gornja dva retka odaberite boju koju želite za taj korak. Zatim kratko pritisnite gumb unaprijed postavljenog uzorka da biste spremili tu boju i prešli na sljedeći korak. Na zadnjem koraku, umjesto kratkog pritiska, samo dugo pritisnite za izlaz iz uređivanja.

Nakon što izađete iz uređivanja uzoraka, uzorak se automatski reproducira.

To je to! Sada imate RGB LED kontroler koji će slijediti uzorke koje možete programirati putem tipkovnice. Ovdje možete stati ili ako želite izgraditi formalniju verziju ovog projekta, nastavite s prolaskom kroz ostale korake.

Korak 7: Bolji hardver: RGB LED upravljački štit i kućište

Image
Image
Bolji hardver: RGB LED upravljački štit i kućište
Bolji hardver: RGB LED upravljački štit i kućište
Bolji hardver: RGB LED upravljački štit i kućište
Bolji hardver: RGB LED upravljački štit i kućište

Kad sam imao radni prototip, znao sam da ne mogu ostaviti goli Arduino i proto ploču na stolovima svoje djece kao trajno rješenje. Trebalo mi je kućište za projekt. Također sam odlučio da ću napraviti bolju ploču za vozače i mislio sam da je to savršena prilika za izradu vlastitog štita.

Očistio sam svoju papirnatu shemu unijevši je u ExpressSCH, besplatni alat koji nudi ExpressPCB, proizvođač ploča koji nudi jeftine kratke serije malih PC ploča. Koristim ExpressPCB više od desetljeća na projektima, ali svakako koristite sve alate i tvorce koje želite.

Osnovnoj shemi dodao sam nekoliko malih značajki kako bi dobro funkcionirala kao štit za ovaj projekt. Dodao sam jastučiće za ožičenje za spajanje Trellisa, utičnicu za napajanje, pilot lampu i priključak za LED traku. Također sam dodao mjesto za kondenzator preko izvora napajanja. Završni krug prikazan je ovdje.

Odlučio sam da snaga za projekt treba doći iz štita. 12V koji se isporučuje na štit napaja LED traku i Arduino. Napajanje Arduina osigurava se spajanjem izvora napajanja na Arduino VIN pin, koji je dvosmjeran (možete napajati Arduino putem ovog pina, ili ako napajanje priključite na Arduino drugdje, dobit ćete isporučeni uključite ovaj pin). Zaštitna dioda D1 sprječava pokušaj napajanja LED dioda bilo kojim napajanjem spojenim izravno na Arduino (npr. USB).

Zašto ne biste koristili Arduino utičnicu za napajanje i samo na nju priključili 12V? Iako sam mogao napajati 12V na Arduinovu utičnicu za napajanje i upotrijebiti VIN pin da zgrabim tu snagu za štit, bio sam zabrinut da Arduinova D1 dioda i tragovi neće biti do visokih struja mogućih u pogonu LED -a trake. Odlučio sam da će moj štit preuzeti ulaznu energiju i napajati Arduino. Također mi je bilo potrebno 5V za Trellis, ali Arduinova ugrađena regulacija napajanja napaja 5V na nekoliko pinova, pa sam jednu od njih koristio za Trellis. To me spasilo stavljanjem regulacijskog kruga na štit.

Zatim sam postavio PCB. Koristio sam neke resurse koje sam pronašao kako bih dobio točna mjerenja za postavljanje pinova u skladu s zaglavljima na Arduino Uno. Malo marljivosti i to se poklopilo u prvom pokušaju. Nema mnogo u samom krugu štita, pa sam imao dovoljno mjesta. Položio sam široke tragove za LED opterećenja, tako da bi za moje potrebe bilo dosta nosivog kapaciteta. Postavio sam MOSFET -ove na mjesto na koje se mogu montirati ravno, sa ili bez hladnjaka. Do sada mi nisu bili potrebni hladnjaci za broj LED dioda koje sam koristio, ali prostora ima ako je potrebno.

Dodao sam i rupe koje odgovaraju otvorima za montažu na rešetki, tako da sam mogao koristiti odvojke za postavljanje rešetke na štit. S priključenim štitom na Arduino i rešetkama ovješenima na štitnicima iznad štita, sve bi trebalo biti lijepo i čvrsto.

Zatim sam ispisao izgled ploče i zalijepio je na komad jezgre od pjene te umetnuo svoje dijelove kako bih se uvjerio da sve odgovara. Sve u redu, pa sam poslao narudžbu.

Tada sam počeo raditi na kućištu. Koristeći Fusion 360, dizajnirao sam jednostavno kućište koje sadrži tri ploče (Arduino Uno, štit i Trellis). Rupe u kućištu omogućuju spajanje na USB priključak Arduina i, naravno, pristup priključku za LED traku i priključku za napajanje. Arduino utičnica za napajanje prekrivena je kućištem kako bi se osiguralo da se ne koristi. Nakon nekoliko prototipova za testiranje, konačno sam imao dizajn s kojim sam bio zadovoljan. Poslao sam STL datoteke za kućište u Thingiverse.

U budućnosti ću napraviti verziju ploče na koju se Nano može izravno priključiti. To bi projekt učinilo još kompaktnijim. Do tada biste mogli koristiti i ovaj adapter za štit Nano to Uno.

Ako ćete raditi štit, evo što će vam trebati osim dijelova navedenih u 1. koraku:

  • RGB LED PC Shield Driver Driver PC ploča (od ExpressPCB -a ili drugih; datoteke možete preuzeti iz mog Github repoa za projekt);
  • 1N4002 dioda;
  • 100uF 25V radijalni elektrolitički kondenzator (upotrijebite 220uF ili 470uF ako je LED opterećenje veliko);
  • Utičnica, PJ202-AH (model s ocjenom 5A).

Sljedeći dijelovi su izborni:

  • 3 mm LED - bilo koje boje, za pilot lampu (može se izostaviti)
  • Otpornik od 1500 ohma - potreban samo ako koristite LED pilot lampu

Preporučeni: