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, Juli
Anonim
Image
Image
Ožičite upravljačku ploču
Ožičite upravljačku ploču

Moji sinovi su htjeli LED trake u boji da osvijetle 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 sjajna prilika da im stvorim nastavno sredstvo koje bi mogli upotrijebiti za izoštravanje vještina programiranja i elektronike koje sam im predavao. Ovo je rezultat.

Pokazat ću vam kako izgraditi ovaj jednostavan, programabilni RGB LED kontroler pomoću Arduino Uno (ili Nano), Adafruit rešetke 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 elastomera (cijene od ovog pisanja). To je sjajno za matricu sa 16 dugmadi 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 tipki 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 bi lupali 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 odgovarati bilo koja obična 12V RGB LED traka. Ovo su jednostavne LED diode, poput SMD 5050, a ne fancy sa individualnom adresom (bez NeoPixela itd.)-to je još jedan projekt! Takođe vam je potrebno 12V napajanje dovoljno veliko da pokrene 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 dugme (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);
  • Napajanje od 12V - odaberite snagu koja odgovara broju LED dioda koje planirate pokretati.

Potrebno odricanje od odgovornosti: gornje veze su date radi vaše udobnosti i nisu preporuka bilo kojeg proizvoda ili dobavljača; niti profitiram od kupovine na ovim linkovima. Ako imate dobavljače koji vam se više sviđaju, svakako ih podržite!

Hajde da počnemo…

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

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

Evo kruga LED upravljačkog programa. Vrlo je jednostavno. Koristi IRBLxxx N-kanalni MOSFET za svaki kanal na LED traci. 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 sa trakom. Dakle, povezat ćemo odvod MOSFET -ova na LED kanale u boji, a izvor na masu. Vrata će biti povezana s Arduino digitalnim izlazima, a otpornici osiguravaju povlačenje koje osigurava da se svaki MOSFET 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) tako da se može kontrolirati intenzitet svakog kanala u boji.

Ako ste zbunjeni oko toga šta ćete spojiti 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) je kapija i povezivat će se s Arduino digitalnim izlaznim pinom i otpornikom (drugi kraj otpornika trebao bi se spojiti na masu). Igla u sredini (pin 2) je odvod i povezuje se sa kanalom u boji LED trake. Pin na desnoj strani (pin 3) je izvor i spojen je na masu. Vodite računa o tome koji tranzistor se spaja na koji LED kanal u boji.

Neću ulaziti u detalje o tome kako lemiti proto ploče. Iskreno, mrzim to i nisam dobar u tome. Ali na dobro ili na loše, to funkcionira i brz je i prljav način da se napravi solidan prototip ili jednokratno. Moja prva ploča je prikazana ovdje.

Mogli biste i ovo nadograditi. To bi svakako bilo brže od lemljenja svega na proto ploči, ali manje trajno.

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

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

Konačno, za napajanje LED -a, spojite negativni (uzemljeni) vod 12 -voltnog napajanja na uzemljenje na vašoj ploči vozača. 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 ima i podršku za montažu za Trellis. Time je postignut mnogo gotov finalni proizvod. Ako želite to učiniti, možete preskočiti korištenje proto ploče kako je ovdje opisano i jednostavno napraviti štitnu ploču. 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

Trellis ploča ima prazne podloge za LED diode od 3 mm koje ćemo morati popuniti. Pažljivo obratite pažnju na simbole na jastučićima-pored jastučića je vrlo suptilno "+" za označavanje anodne strane. Ako držite ploču 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 svakoj poziciji (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 postaviti skicu na njega. Sada je pravi trenutak da stavite silikonsku podlogu na dugme na Trellis ploču. 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 sad.

CC Attribution: Gornja slika ožičenja Trellis je izrezana 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 sa mog Github repoa za ovaj projekat.

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

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

Da biste uključili sistem, pritisnite i držite donju lijevu tipku (#13) najmanje jednu sekundu. Kada otpustite dugme, sve LED diode bi trebale nakratko zasvijetliti, a zatim će se donja dva reda ugasiti, osim #13 (dolje lijevo). Sistem je sada u uključenom stanju i stanju mirovanja.

Kao prvi test možete pokušati upotrijebiti dva gornja reda kako biste posvijetlili i zatamnili LED kanale. Ako to funkcionira, 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 su spojeni 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 funkcijama korisničkog sučelja tipkovnice.

NAPOMENA: Ako vaš kontroler radi, ali tipke za intenzitet ne kontroliraju prave boje, ne brinite i nemojte ponovno povezivati! Jednostavno idite na Sketch u Arduino IDE -u i izmijenite CRVENU, ZELENU i PLAVU definiciju pinova pri vrhu datoteke.

Korak 5: Osnovne kontrolne funkcije

Osnovne kontrolne funkcije
Osnovne kontrolne funkcije

Sada kada je sistem uključen, možemo se igrati s nekim od dugmadi i natjerati ga da radi stvari.

Kao što sam rekao u prethodnom koraku, kada se uključi, sistem dolazi u stanje "mirovanja". U ovom stanju možete koristiti tipke na gornja dva reda za povećanje i smanjenje intenziteta boje svakog od crvenih, zelenih i plavih LED kanala. Ako koristite bijele tipke za povećanje/smanjenje, sistem 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 su pohranjeni u Arduino EEPROM -u. Kada se skica pokrene po prvi put, vidi da u EEPROM -u nema pohranjenih uzoraka i sprema skup zadanih uzoraka. Nakon toga možete promijeniti ove uzorke, a vaše promjene se pohranjuju u EEPROM -u Arduina, zamjenjujući unaprijed postavljeni uzorak. Ovo 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 tastera (osam dugmadi u donja dva reda) da biste pokrenuli uzorak sačuvan za to dugme. Dugme treperi dok se uzorak pokreće. Da biste zaustavili uzorak, ponovo kratko pritisnite dugme sa uzorkom. 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 kojeg dugmeta, 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. Dodirom na dugme na rešetki, ponovo ćete ga probuditi.

Da biste isključili sistem, pritisnite i držite donje lijevo dugme (#13) jednu ili više sekundi i otpustite. Rešetka i LED traka će postati tamni.

Korak 6: Uređivanje uzoraka na tastaturi

Uređivanje uzoraka na tastaturi
Uređivanje uzoraka na tastaturi

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, prvo odlučite za koje dugme želite urediti uzorak. Možete odabrati bilo koje dugme osim donjeg lijevog dugmeta. Uđite u način uređivanja uzoraka dugim pritiskom (zadržite više od jedne sekunde) na odabranom gumbu uzorka. Kada se otpusti, dugme će zasvijetliti, a gornja dva reda će početi treptati. 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 završite uređivanje 16. koraka (maksimalno 16 koraka po uzorku). U svakom koraku koristite dugmad za intenzitet kanala u gornja dva reda kako biste odabrali boju koju želite za taj korak. Zatim kratko pritisnite dugme za unaprijed postavljene uzorke da biste sačuvali tu boju i prešli na sljedeći korak. Na posljednjem 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 sekvencirati uzorke koje možete programirati putem tastature. Ovdje možete stati ili ako želite izgraditi formalniju verziju ovog projekta, nastavite 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 projekat. Odlučio sam i da ću napraviti bolju ploču za vozače, i mislio sam da je to savršena prilika da napravim svoj štit.

Očistio sam šemu papira unošenjem 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 jedne decenije na projektima, ali svakako koristite sve alate i proizvođače koje želite.

Osnovnoj shemi dodao sam nekoliko malih značajki kako bi dobro funkcionirala kao štit za ovaj projekt. Dodao sam ožičenje za povezivanje rešetke, utičnicu za napajanje, pilot lampu i konektor za LED traku. Dodao sam i mjesto za kondenzator preko izvora napajanja. Završni krug prikazan je ovdje.

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

Zašto ne biste koristili Arduino utičnicu za napajanje i na nju jednostavno priključili 12V? Iako sam mogao napajati Arduino utičnicu za napajanje od 12 V i upotrijebiti VIN pin da uhvatim tu snagu za štit, bio sam zabrinut da Arduinova D1 dioda i tragovi neće biti do velikih struja koje su moguće u pogonu LED -a trake. Stoga sam odlučio da će moj štit preuzeti ulaznu energiju i napajati Arduino. Trebalo mi je i 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 sa zaglavljima na Arduino Uno. Malo marljivosti i to se poklopilo u prvom pokušaju. Nema mnogo u samom krugu štita, pa sam imao dovoljno prostora. 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 gdje se mogu montirati na ravnu površinu, 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 mogu koristiti odvojke za postavljanje rešetke na štit. Sa priključenim štitom na Arduino i rešetkama ovješenima na štitnicima iznad štita, sve bi trebalo biti lijepo i čvrsto.

Zatim sam odštampao izgled ploče i zalijepio je na komad jezgre od pjene i umetnuo svoje dijelove kako bih se uvjerio da sve odgovara. Sve je 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 povezivanje na USB priključak Arduina i, naravno, pristup LED traci za povezivanje i utičnicu 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 raditi verziju ploče na koju se Nano može direktno priključiti. To bi projekt učinilo još kompaktnijim. Do tada ste mogli koristiti i ovaj adapter za štit Nano to Uno.

Ako ćete raditi štit, evo što vam je potrebno osim dijelova navedenih u koraku 1:

  • RGB LED Driver Shield PC ploča (sa ExpressPCB -a ili drugih; datoteke možete preuzeti sa mog Github repo -a za projekat);
  • 1N4002 dioda;
  • 100uF 25V radijalni elektrolitički kondenzator (koristite 220uF ili 470uF ako je LED opterećenje veliko);
  • Utičnica, PJ202-AH (model sa 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čuje se: