INHOUDSOPGAWE:

Programmeerbare RGB LED Sequencer (met behulp van Arduino en Adafruit Trellis): 7 stappe (met foto's)
Programmeerbare RGB LED Sequencer (met behulp van Arduino en Adafruit Trellis): 7 stappe (met foto's)

Video: Programmeerbare RGB LED Sequencer (met behulp van Arduino en Adafruit Trellis): 7 stappe (met foto's)

Video: Programmeerbare RGB LED Sequencer (met behulp van Arduino en Adafruit Trellis): 7 stappe (met foto's)
Video: Showtec - Colorcue 1, 2, 3, 4. Product codes 50703, 50704, 50705 en 50706 2024, November
Anonim
Image
Image
Draai die bestuurdersbord op
Draai die bestuurdersbord op

My seuns wou hê dat kleur -LED -stroke hul lessenaars verlig, en ek wou nie 'n ingemaakte RGB -strookbeheerder gebruik nie, want ek het geweet dat hulle verveeld sou raak met die vaste patrone wat hierdie beheerders het. Ek het ook gedink dat dit 'n goeie geleentheid sou wees om vir hulle 'n onderriginstrument te skep wat hulle kan gebruik om die programmeer- en elektroniese vaardighede wat ek hulle geleer het, te verskerp. Dit is die resultaat.

Ek gaan jou wys hoe om hierdie eenvoudige, programmeerbare RGB LED -strookbeheerder te bou met 'n Arduino Uno (of Nano), 'n Adafruit Trellis en 'n handvol ander dele.

Die Adafruit Trellis is een van my gunsteling nuwe speelgoed van Lady Ada en die bemanning. In die eerste plek is dit slegs $ 9,95 vir die bord, en nog $ 4,95 vir die silikoon elastomeer knoppie (pryse vanaf hierdie skrywe). Dit is baie goed vir 'n 4x4-matriks met 16 knoppies en LED-moontlikhede. Daar is geen LED's gemonteer nie; u moet dit verskaf, maar dit gee u die buigsaamheid om die kleure te kies wat u wil hê (en hou koste en kompleksiteit laer as om in adresbare LED's in te bou). Om hierdie projek soos myne te bou, benodig u 'n handvol 3 mm -LED's. Ek het 2 rooi, 2 groen, 2 blou, 4 geel en 6 wit gebruik.

Die Trellis gebruik I2C om te kommunikeer, dus dit benodig slegs twee I/O -penne (data en horlosie) om 16 knoppies en 16 LED's te beheer.

U kan die hardeware -deel van hierdie projek op 'n klein protobord doen, en so het ek my prototipe gedoen. Ek het vinnig besef dat ek iets netjieser en meer op hul lessenaars nodig het ('n kaal Arduino en 'n proto -boord wat te bang sou wees, sou ek my eie skild gemaak het om die LED -stroke aan te dryf. Instruksies en lêers vir die bou van die skild is by die laaste stap ingesluit.

Die bestuurder gebruik drie IRLB8721 MOSFET's en drie weerstande. En natuurlik het u 'n LED -strook nodig om te bestuur; byna elke gewone 12V RGB LED -strook sal doen. Dit is eenvoudige LED's, soos SMD 5050's, en nie fancy individueel aanspreekbare nie (geen NeoPixels, ens.)-dit is 'n ander projek! U benodig ook 'n 12V -kragtoevoer wat groot genoeg is om die aantal LED's wat u wil gebruik, aan te dryf.

Hier is die basiese hardeware -behoeftes vir hierdie projek:

  • Een Arduino Uno of Nano (hierdie instruksies is vir Uno met vroulike opskrifte geïnstalleer, maar Nano op 'n broodbord werk goed) (Adafruit, Amazon, Mouser);
  • Een Adafruit Trellis bord en silikoon knoppie pad (Adafruit);
  • Drie IRLB8721 N-kanaal MOSFET's (Adafruit, Amazon, Mouser);
  • Drie 1K -weerstande (Amazon, Mouser);
  • Drie 220 ohm weerstande (Amazon, Mouser)
  • Een klein protobord (my eerste was 1/4 grootte-kies enige grootte waarmee u gemaklik kan werk) (Adafruit, Amazon);
  • 'N 12V RGB LED -strook (SMD 5050) (Adafruit, Amazon);
  • 12V -kragtoevoer - kies 'n wattage wat geskik is vir die aantal LED's wat u wil bestuur.

Vereiste vrywaring: die bogenoemde skakels word vir u gemak verskaf en is geen goedkeuring van enige produk of verkoper nie; Ek baat ook nie by aankope wat op hierdie skakels gedoen word nie. As u verkopers het waarvan u beter hou, ondersteun hulle dan beslis!

Laat ons begin…

Stap 1: Draai die bestuurdersbord op

Draai die bestuurdersbord op
Draai die bestuurdersbord op

Hier is die LED -bestuurderbaan. Dit is baie eenvoudig. Dit gebruik 'n IRBLxxx N-kanaal MOSFET vir elke kanaal op die LED-strook. Die LED -strook is 'n algemene anode, wat beteken dat +12V na die LED -strook gestuur word, en die rooi, groen en blou LED -kanale word beheer deur grond te verskaf op die onderskeie verbinding met die strook. Dus verbind ons die afvoer van die MOSFET's aan die LED -kleurkanale en die bron na die grond. Die hekke sal gekoppel word aan Arduino digitale uitsette, en die weerstande bied 'n aftrek wat verseker dat elke MOSFET volledig aan- of afgeskakel word indien nodig.

Die Arduino bied pulswydte-modulasie op sommige van sy digitale uitsette, so ons gebruik die uitsette (spesifiek D9, D10, D11) sodat die intensiteit van elke kleurkanaal beheer kan word.

As u verward is oor wat u met die IRLB8721 MOSFET's moet verbind, hou een in u hand met die voorkant na u toe, soos op die foto hierbo getoon. Die pen aan die linkerkant (pen 1) is die hek en sal aansluit by 'n Arduino digitale uitsetpen en die weerstand (die ander kant van die weerstand moet met die grond verbind word). Die pen in die middel (pen 2) is die drein en sluit aan by die LED -strook se kleurkanaal. Die pen aan die regterkant (pen 3) is die bron en is met die grond verbind. Hou seker watter transistor by watter LED -kleurkanaal aansluit.

Ek gaan nie in op die besonderhede van hoe om protoborde te soldeer nie. Eerlik, ek haat dit, en ek is nie goed daarmee nie. Maar vir beter of slegter, dit werk, en dit is 'n vinnige en vuil manier om 'n soliede prototipe of eenmalig te doen. My eerste bord word hier getoon.

U kan dit ook opdis. Dit sou beslis vinniger wees as om alles op 'n proto -bord op te soldeer, maar minder permanent.

Nadat u u bestuurder aangeskakel het, koppel die MOSFET -hek -ingange aan die Arduino digitale uitsetpenne: D9 vir die groen kanaal, D10 vir die rooi kanaal en D11 vir die blou kanaal. Koppel die LED -strook ook aan u protobord.

Maak ook seker dat u bestuurdersbord 'n aparte verbinding van die grond met een van die Arduino se grondpenne het.

Ten slotte, vir LED -krag, koppel die negatiewe (grond) aansluiting van die 12V -voeding aan op 'n grond op u bestuurdersbord. Koppel dan die positiewe aansluiting van die 12V -toevoer aan die anodekabel van u LED -strook (dit is 'n swart draad op my kabels wat op die foto getoon word).

Uiteindelik het ek 'n rekenaarbordskerm ontwerp wat op die Uno gemonteer is, en ook 'n monteersteun vir die Trellis het. Dit het 'n baie meer voltooide finale produk gelewer. As u dit wil doen, kan u die prototafel oorskry soos hier beskryf en die skildplaat laat maak. Dit word alles in die laaste stap beskryf.

Stap 2: Sit LED's op die traliewerk

Sit LED's op die traliewerk
Sit LED's op die traliewerk

Die Trellis -bord het leë pads vir 3 mm LED's wat ons moet vul. Let noukeurig op die simbole op die pads-daar is 'n baie subtiele "+" langs die pad om die anodekant aan te dui. As u die bord vas hou sodat die teks regs na bo is, is daar bo-aan die onderkant ook 'n notasie wat aandui dat die LED-anodes aan die linkerkant is.

Soldeer u 3 mm -LED's aan die bord. As u na die voorkant van die bord kyk, teks regs na bo, die skakelaar links bo/LED is #1, regs bo is #4, links onder is #13 en regs onder is #16. Hier is die kleure wat ek in elke posisie gebruik het (en daar is 'n rede hoekom, so ek raai u aan om my patroon ten minste vir die twee boonste rye te volg):

1 - rooi2 - groen3 - blou4 - wit5 - rooi6 - groen7 - blou8 - wit9 - wit10 - wit11 - geel12 - geel13 - wit14 - wit15 - geel16 - geel

CC Attribution: Die Trellis -prent hierbo is deur Adafruit en gebruik onder die Creative Commons - Attribution/ShareAlike -lisensie.

Stap 3: Koppel die traliewerk aan die Arduino

Koppel die Traliewerk aan die Arduino
Koppel die Traliewerk aan die Arduino

Die Trellis het vyf bedradingsblokkies, maar slegs vier word in hierdie projek gebruik. Die Trellis benodig SDA en SCL om met die Arduino te kommunikeer (met behulp van I2C), en 5V en GND vir krag. Die laaste pad, INT, word nie gebruik nie. Die Traliewerkblokkies verskyn aan al vier die rande van die bord. U kan enige stel pads gebruik wat u wil.

Soldeer 'n soliede verbindingsdraad aan die 5V, GND, SDA en SCL pads. Koppel dan die 5V -draad aan die 5V -pen op die Arduino, die GND aan die grondpen, die SDA -draad na A4 en die SCL -draad na A5.

Vervolgens gaan ons die Arduino aanskakel en die skets daarop oplaai. Dit is 'n goeie tyd om die silikoonknoppie op die Trellis -bord te sit. Dit sit net op die bord (let op die "knoppe" aan die onderkant van die kussing wat in die gate op die bord pas), dus u kan 'n paar stukke band gebruik om die rande van die kussing aan die bord te hou nou.

CC -toekenning: die Trellis -bedradingsbeeld hierbo is 'n afgesnyde weergawe van hierdie beeld deur Adafruit en word gebruik onder die Creative Commons - Attribution/ShareAlike -lisensie.

Stap 4: Laai die projekskets af en laai dit op na die Arduino

U kan die skets van my Github -repo vir hierdie projek aflaai.

Sodra u dit gekry het, maak dit oop in die Arduino IDE, verbind die Arduino met 'n USB -kabel en laai die skets op na die Arduino.

As die skets opgelaai word en die Traliewerk behoorlik verbind is, moet enige van die knoppies op die Traliewerk drie keer vinnig flits as dit ingedruk word. Dit is 'n aanduiding dat u op 'n ongeldige knoppie gedruk het, omdat die stelsel in sy "af" -toestand kom, dus die enigste geldige druk is die een wat nodig is om dit aan te skakel.

Om die stelsel aan te skakel, hou die knoppie links onder (#13) minstens een sekonde ingedruk. As u die knoppie loslaat, moet al die LED's kortliks brand, en dan gaan die onderste twee rye uit, behalwe #13 (links onder). Die stelsel is nou in 'n ingeskakel en in 'n ledige toestand.

U kan die eerste twee rye probeer om die LED -kanale as 'n eerste toets helderder en dowwer te maak. As dit werk, is dit goed om na die volgende stap te gaan. Indien nie, kyk:

  1. LED -kragtoevoer is gekoppel en aan;
  2. Die bestuurdersbord MOSFET's is korrek bedraad. As u dieselfde IRLB8721's as ek gebruik, kyk dan na:

    • Bestuurder seine -insette (MOSFET -hekke, IRLB8721 -pen 1) is gekoppel aan Arduino D9 = groen, D10 = rooi, D11 = blou (sien nota hieronder);
    • LED -strook is gekoppel aan bestuurdersbord en LED -kleurkanale is gekoppel aan MOSFET -dreine (IRLB8721 pen 2);
    • MOSFET -bronpenne (IRLB8721 -pen 3) is op die bestuurdersbord met die grond verbind;
  3. Grondverbinding tussen bestuurdersbord en Arduino -grondpen.

In die volgende stap speel ons met 'n paar van die funksies van die knoppieblok -gebruikerskoppelvlak.

LET WEL: as u kontroleerder werk, maar die intensiteitsknoppies nie die regte kleure beheer nie, moenie bekommerd wees nie en moenie weer bedraad nie! Gaan net in die Sketch in die Arduino IDE en verander die ROOI, GROEN en BLOU pen definisies naby die bokant van die lêer.

Stap 5: Basiese beheerfunksies

Basiese beheerfunksies
Basiese beheerfunksies

Noudat die stelsel aangeskakel is, kan ons met 'n paar van die knoppies speel en dinge laat doen.

Soos ek in die vorige stap gesê het, as die stelsel aangeskakel word, kom die stelsel in sy "ledige" toestand. In hierdie toestand kan u die knoppies op die boonste twee rye gebruik om die kleurintensiteit van elk van die rooi, groen en blou LED -kanale te verhoog en te verminder. As u die wit knoppies verhoog/verlaag, verhoog of verlaag die stelsel die intensiteit van al drie kanale gelyk en op gelyke vlakke.

Die onderste twee rye word gebruik om vooraf ingestelde patrone af te speel. Hierdie patrone word in die Arduino's EEPROM gestoor. As die skets vir die eerste keer uitgevoer word, sien dit dat die EEPROM geen patrone gestoor het nie en dat 'n stel standaardpatrone gestoor word. Daarna kan u hierdie patrone verander, en u veranderings word in die Arduino se EEPROM gestoor en die vooraf ingestelde patroon vervang. Dit verseker dat u patrone kragonderbrekings oorleef. Die redigeringsfunksie word in die volgende stap beskryf.

Druk solank op enige van die vooraf ingestelde knoppies (die agt knoppies in die onderste twee rye) om die patroon wat vir die knoppie gestoor is, uit te voer. Die knoppie flits terwyl die patroon loop. Druk weer kortliks op die patroonknoppie om die patroon te stop. Terwyl 'n patroon aan die gang is, kan die wit op/af knoppies in die boonste rye gebruik word om die patroonsnelheid te verander.

As u die projek 'n paar sekondes alleen laat sonder om aan enige knoppies te raak, sien u dat die LED's verdof. Dit is beide om krag te bespaar en om te voorkom dat die Trellis die 'bui' wat die LED's probeer skep, te verlig. Deur 'n knoppie op die traliewerk aan te raak, word dit weer wakker.

Om die stelsel af te skakel, hou die knoppie links onder (#13) vir een of meer sekondes ingedruk en laat los. Die traliewerk en LED -strook sal donker word.

Stap 6: Bewerk patrone op die toetsbord

Bewerk patrone op die toetsbord
Bewerk patrone op die toetsbord

Soos ek in die vorige stap gesê het, stoor die skets agt standaardpatrone in EEPROM die eerste keer dat dit uitgevoer word. U kan 7 van hierdie patrone na iets anders verander as u die patroonbewerkingsmodus op die knoppieblad wil gebruik.

Besluit eers vir watter knoppie u die patroon wil wysig om die patroonbewerkingsmodus te betree. U kan enige ander knoppie kies as die knoppie links onder. Gaan na die patroonbewerkingsmodus deur lang op die gekose patroonknoppie (meer as een sekonde ingedruk) te hou. As die knoppie losgemaak word, brand die knoppie solied en die boonste twee rye begin flikker. Dit dui aan dat u in die redigeermodus is.

Die bewerkingsmodus begin by die eerste stap van die patroon en gaan voort totdat u die redigering verlaat of die 16de stap voltooi (maksimum 16 stappe per patroon). Gebruik by elke stap die kanaalintensiteitsknoppies in die boonste twee rye om die kleur te kies wat u vir daardie stap wil hê. Druk dan kort op die vooraf ingestelde patroonknoppie om die kleur te stoor en gaan na die volgende stap. Op u laaste stap, in plaas van kort druk, druk net lank om die bewerking te verlaat.

Nadat u die patroonbewerking verlaat het, speel die patroon outomaties.

Dis dit! U het nou 'n RGB LED -beheerder wat patrone wat u deur die klavier kan programmeer, opeenvolg. U kan hier stop, of as u 'n meer formele weergawe van hierdie projek wil bou, moet u deur die res van die stappe gaan.

Stap 7: Beter hardeware: RGB LED -bestuurderskerm en omhulsel

Image
Image
Beter hardeware: RGB LED -bestuurderskerm en omhulsel
Beter hardeware: RGB LED -bestuurderskerm en omhulsel
Beter hardeware: RGB LED -bestuurderskerm en omhulsel
Beter hardeware: RGB LED -bestuurderskerm en omhulsel

Sodra ek 'n werkende prototipe gehad het, het ek geweet dat ek nie 'n kaal Arduino en proto -bord op die lessenaars van my kinders kon laat as 'n permanente oplossing nie. Ek het 'n omhulsel vir die projek nodig gehad. Ek het ook besluit dat ek 'n beter bestuurdersbord sou maak, en ek het gedink dit is die perfekte geleentheid om my eie skild te maak.

Ek het my papierskema skoongemaak deur dit in ExpressSCH in te voer, 'n gratis hulpmiddel wat deur ExpressPCB aangebied word, 'n bordfabriek wat goedkoop kort lopies klein rekenaarborde bied. Ek gebruik ExpressPCB al meer as 'n dekade vir projekte, maar gebruik die gereedskap en vervaardiger wat u verkies.

Ek het 'n paar klein funksies by die basiese skematiese byvoeging gevoeg, sodat dit goed sou funksioneer as 'n skild vir hierdie projek. Ek het bedradingsblokkies bygevoeg om die Trellis, 'n kragaansluiting, 'n proeflamp en 'n aansluiting vir die LED -strook aan te sluit. Ek het ook 'n plek vir 'n kondensator bygevoeg oor die kragtoevoer. Die finale stroombaan word hier getoon.

Ek het besluit dat krag vir die projek uit die skild moet kom. Die 12V wat aan die skild verskaf word, dryf die LED -strook en die Arduino aan. Krag aan die Arduino word verskaf deur die toevoerinvoer aan te sluit op die Arduino se VIN-pen, wat in twee rigtings is (u kan die Arduino op hierdie pen voorsien, of as u elders krag aan die Arduino aansluit, gee dit u die krag op hierdie pen). Beskermingsdiode D1 verhoed dat enige krag wat direk op die Arduino (bv. USB) gekoppel is, probeer om die LED's aan te dryf.

Waarom nie die Arduino se kragaansluiting gebruik nie en net 12V daar aansluit? Alhoewel ek 12V aan die Arduino se kragaansluiting kon verskaf en die VIN -pen gebruik het om die krag vir die skild te gryp, was ek bekommerd dat die Arduino se D1 -diode en spore nie die hoë strome sou bereik wat die LED kan aandryf nie. stroke. Dus het ek besluit dat my skild die kraginvoer sal oorneem en in plaas daarvan krag aan die Arduino sal gee. Ek het ook 5V nodig vir die Trellis, maar die Arduino se kragregulering aan boord lewer 5V op verskeie penne, so ek gebruik een daarvan vir die Traliewerk. Dit het my gered om 'n reguleerkring op die skild te sit.

Ek lê toe die PCB uit. Ek het 'n paar hulpbronne wat ek gevind het, gebruik om die presiese metings vir die plasing van die penne te kry om aan die kopstukke op die Arduino Uno te voldoen. 'N Bietjie ywer en dit pas by die eerste probeerslag. Daar is nie veel aan die skildbaan self nie, so ek het genoeg ruimte gehad. Ek het wye spore vir die LED-vragte uiteengesit, sodat daar genoeg stroomdraende kapasiteit vir my behoeftes sou wees. Ek het die MOSFET's uiteengesit waar hulle plat gemonteer kan word, met of sonder 'n hittebak. Tot dusver het ek nie 'n heatsink nodig gehad vir die aantal LED's wat ek gebruik het nie, maar die ruimte is daar indien nodig.

Ek het ook gate bygevoeg wat ooreenstem met die monteergate op die traliewerk, sodat ek standpunte kan gebruik om die traliewerk aan my skild te monteer. Met die skild wat by die Arduino ingeprop is en die Traliewerk op stand-offs oor die skild hang, moet alles mooi en stewig wees.

Ek het die borduitleg gedruk en dit aan 'n stuk skuimkern vasgeplak en my dele ingesit om seker te maak dat alles pas. Alles goed, so ek het die bestelling gestuur.

Ek het toe begin werk aan 'n omhulsel. Met behulp van Fusion 360 het ek 'n eenvoudige omhulsel ontwerp om die drie borde (Arduino Uno, skild en Trellis) te bevat. Met gate in die omhulsel kan u die USB -poort van die Arduino aansluit, en natuurlik ook toegang tot die LED -aansluiting en die kragaansluiting. Die Arduino -aansluiting word deur die omhulsel gedek om te verseker dat dit nie gebruik word nie. Na 'n paar prototipes vir toetspassing, het ek uiteindelik 'n ontwerp gekry waarmee ek tevrede was. Ek het die STL -lêers vir die omhulsel op Thingiverse geplaas.

In die toekoms sal ek 'n weergawe van die bord doen waarop 'n Nano direk kan aangesluit word. Dit sou die projek nog meer kompak maak. Tot dan kan u ook 'n Nano tot Uno -skildadapter soos hierdie gebruik.

As u die skild gaan doen, is dit wat u nodig het, benewens die dele wat in stap 1 genoem word:

  • RGB LED Driver Shield PC -bord (van ExpressPCB of ander; u kan die lêers aflaai van my Github -repo vir die projek);
  • 1N4002 diode;
  • 100uF 25V radiale elektrolitiese kondensator (gebruik 220uF of 470uF as groot LED -lading);
  • Kragaansluiting, PJ202-AH (5A-gegradeerde model).

Die volgende dele is opsioneel:

  • 3 mm LED - enige kleur, vir stuurlamp (kan weggelaat word)
  • 1500 ohm weerstand - slegs nodig as u 'n LED -stuurlamp gebruik

Aanbeveel: