Indholdsfortegnelse:

Programmerbar RGB LED Sequencer (ved hjælp af Arduino og Adafruit Trellis): 7 trin (med billeder)
Programmerbar RGB LED Sequencer (ved hjælp af Arduino og Adafruit Trellis): 7 trin (med billeder)

Video: Programmerbar RGB LED Sequencer (ved hjælp af Arduino og Adafruit Trellis): 7 trin (med billeder)

Video: Programmerbar RGB LED Sequencer (ved hjælp af Arduino og Adafruit Trellis): 7 trin (med billeder)
Video: String Waterproof DMX RGB Pixel 3D led Ball Rgb Rgbw Dc24v Dot Pixel Outdoor Facade Building Led Poi 2024, Juli
Anonim
Image
Image
Forbind førerkortet
Forbind førerkortet

Mine sønner ønskede, at farve -LED -strimler skulle lyse op på deres skriveborde, og jeg ville ikke bruge en dåse RGB -stripkontroller, fordi jeg vidste, at de ville kede sig med de faste mønstre, disse controllere har. Jeg tænkte også, at det ville være en fantastisk mulighed for at oprette et undervisningsværktøj til dem, som de kunne bruge til at skærpe de programmerings- og elektronikfærdigheder, jeg har lært dem. Dette er resultatet.

Jeg vil vise dig, hvordan du bygger denne enkle, programmerbare RGB LED -stripkontroller ved hjælp af en Arduino Uno (eller Nano), en Adafruit Trellis og en håndfuld andre dele.

Adafruit Trellis er et af mine yndlings nye legetøj fra Lady Ada og crew. Først og fremmest er det kun $ 9,95 for brættet og yderligere $ 4,95 for silikoneelastomer -knappladen (priser i skrivende stund). Det er meget for en 16-knaps 4x4 matrix med LED-kapacitet. Der følger ingen LED'er med, du skal levere dem, men det giver dig fleksibiliteten til at vælge de farver, du ønsker (og holder omkostninger og kompleksitet nede i forhold til at bygge i adresserbare LED'er). For at bygge dette projekt som mit skal du bruge en håndfuld 3 mm lysdioder. Jeg brugte 2 røde, 2 grønne, 2 blå, 4 gule og 6 hvide.

Trellis bruger I2C til at kommunikere, så det kræver kun to I/O -ben (data og ur) for at styre 16 knapper og 16 lysdioder.

Du kan udføre hardware -delen af dette projekt på et lille prototavle, hvilket var hvordan jeg lavede min prototype. Jeg indså hurtigt, at jeg havde brug for noget pænere og mere indeholdt på deres skriveborde (et bare Arduino- og proto -bræt, der bankede rundt, ville være for skrøbeligt), så jeg lavede mit eget skjold til at køre LED -strimlerne. Instruktioner og filer til opbygning af skjoldet er inkluderet i det sidste trin.

Driveren bruger tre IRLB8721 MOSFET'er og tre modstande. Og selvfølgelig skal du bruge en LED -strip til at køre; stort set enhver almindelig 12V RGB LED -strip vil gøre. Disse er enkle LED'er, som SMD 5050'er, ikke fancy individuelt adresserbare (ingen NeoPixels osv.)-det er et andet projekt! Du skal også bruge en 12V strømforsyning, der er stor nok til at drive det antal lysdioder, du agter at bruge.

Så for at opsummere, her er de grundlæggende hardwarebehov til dette projekt:

  • Én Arduino Uno eller Nano (disse instruktioner er til Uno med kvindelige overskrifter installeret, men Nano på et brødbræt fungerer fint) (Adafruit, Amazon, Mouser);
  • Et Adafruit Trellis board og silikone knapunderlag (Adafruit);
  • Tre IRLB8721 N-kanal MOSFET'er (Adafruit, Amazon, Mouser);
  • Tre 1K modstande (Amazon, Mouser);
  • Tre 220 ohm modstande (Amazon, Mouser)
  • Et lille prototavle (mit første var 1/4 størrelse-vælg enhver størrelse, du kan arbejde komfortabelt med) (Adafruit, Amazon);
  • En 12V RGB LED -strip (SMD 5050) (Adafruit, Amazon);
  • 12V strømforsyning - vælg et passende wattforbrug til det antal lysdioder, du planlægger at køre.

Påkrævet ansvarsfraskrivelse: ovenstående links er til rådighed for din bekvemmelighed og er ikke en påtegning fra noget produkt eller leverandør; jeg tjener heller ikke på køb foretaget på disse links. Hvis du har leverandører, du bedre kan lide, så støt dem på alle måder!

Lad os komme igang…

Trin 1: Forbind driverkortet

Forbind førerkortet
Forbind førerkortet

Her er LED -driverkredsløbet. Det er meget enkelt. Den bruger en IRBLxxx N-kanal MOSFET for hver kanal på LED-strimlen. LED -båndet er almindelig anode, hvilket betyder, at +12V sendes til LED -båndet, og de røde, grønne og blå LED -kanaler styres ved at give jord på den respektive forbindelse til båndet. Så vi forbinder afløbet af MOSFET'erne til LED -farvekanalerne og kilden til jorden. Portene vil blive forbundet til Arduino digitale udgange, og modstandene giver en pull-down, der sikrer, at hver MOSFET tændes eller slukkes fuldstændigt efter behov.

Arduino tilbyder pulsbreddemodulation på nogle af sine digitale udgange, så vi bruger disse udgange (specifikt D9, D10, D11), så intensiteten af hver farvekanal kan kontrolleres.

Hvis du er i tvivl om, hvad du skal forbinde hvor på IRLB8721 MOSFET'erne, skal du holde en i hånden med forsiden mod dig som vist på billedet ovenfor. Stiften til venstre (pin 1) er porten, og vil forbinde til en Arduino digital output pin og modstanden (den anden ende af modstanden skal forbindes til jorden). Stiften i midten (pin 2) er afløbet og forbindes til LED -strimmel farvekanal. Stiften til højre (pin 3) er kilden og er forbundet til jorden. Sørg for at holde styr på, hvilken transistor der tilsluttes hvilken LED -farvekanal.

Jeg vil ikke gå ind på detaljerne om, hvordan man lodder prototavler. Helt ærligt, jeg hader det, og jeg er ikke god til det. Men på godt og ondt virker det, og det er en hurtig og beskidt måde at få en solid prototype eller engang udført på. Mit første bord vises her.

Du kan også brødboard dette op. Det ville helt sikkert være hurtigere end at lodde alt op på et proto -bord, men mindre permanent.

Når du har fået din driver tilsluttet, skal du slutte MOSFET -gateindgangene til Arduino digitale udgangsstifter: D9 for den grønne kanal, D10 for den røde kanal og D11 for den blå kanal. Tilslut også LED -båndet til dit proto -kort.

Sørg også for, at dit førerkort har en separat forbindelse fra jorden til en af Arduinos jordstifter.

Til sidst, for LED -strøm, skal du slutte den negative (jord) ledning for 12V -forsyningen til en jord på dit driverkort. Tilslut derefter den positive ledning for 12V forsyningen til anodledningen på din LED -strimmel (dette er en sort ledning på mine kabler vist på billedet).

I sidste ende endte jeg med at designe et PC board -skjold, der monteres på Uno, og også har en monteringsstøtte til Trellis. Dette gav et langt mere færdigt slutprodukt. Hvis du vil gøre det, kan du springe over at bruge prototavlen som beskrevet her og bare få lavet skjoldbrættet. Det hele er beskrevet i det sidste trin.

Trin 2: Sæt lysdioder på espalieret

Sæt lysdioder på espalieret
Sæt lysdioder på espalieret

Trellis -pladen har tomme puder til 3 mm lysdioder, som vi skal fylde. Bemærk omhyggeligt symbolerne på puderne-der er et meget subtilt "+" ved siden af puden for at angive anodesiden. Hvis du holder tavlen, så teksten er med højre side opad, er der også en notation øverst og nederst på tavlen, der fortæller, at LED-anoderne er til venstre.

Lod dine 3 mm lysdioder til brættet. Når du ser på forsiden af tavlen, skal du skrive højre side op, kontakten øverst til venstre/LED-position er #1, den øverste højre er #4, den nederste venstre er #13, og den nederste højre er #16. Her er de farver, jeg brugte i hver position (og der er en grund til, så jeg råder dig til at følge mit mønster i det mindste for de to øverste rækker):

1 - rød2 - grøn3 - blå4 - hvid5 - rød6 - grøn7 - blå8 - hvid9 - hvid10 - hvid11 - gul12 - gul13 - hvid14 - hvid15 - gul16 - gul

CC Attribution: Trellis -billedet ovenfor er af Adafruit og bruges under Creative Commons - Attribution/ShareAlike -licensen.

Trin 3: Tilslut espalier til Arduino

Tilslut espalieret til Arduino
Tilslut espalieret til Arduino

Trellis har fem ledningsplader, men kun fire bruges i dette projekt. Trellis har brug for SDA og SCL for at kommunikere med Arduino (ved hjælp af I2C) og 5V og GND for strøm. Den sidste pad, INT, bruges ikke. Trellis -puderne vises på alle fire kanter af brættet. Du kan bruge ethvert sæt af puder, du ønsker.

Lod en solid sammenkoblingskablet til 5V, GND, SDA og SCL pads. Tilslut derefter 5V -ledningen til 5V -stiften på Arduino, GND til jordstiftet, SDA -ledningen til A4 og SCL -ledningen til A5.

Dernæst vil vi tænde for Arduino og uploade skitsen til den. Nu er det et godt tidspunkt at lægge silikoneknaplen på Trellis -pladen. Det sidder bare på brættet (bemærk "knubberne" i bunden af puden, der passer ind i huller på brættet), så du vil måske bruge et par stykker tape til at holde kanterne på puden til brættet for nu.

CC Attribution: Trellis wiring -billedet ovenfor er en beskåret version af dette billede af Adafruit og bruges under Creative Commons - Attribution/ShareAlike -licensen.

Trin 4: Download projektskitsen og upload den til Arduino

Du kan downloade skitsen fra min Github -repo til dette projekt.

Når du har fået det, skal du åbne det i Arduino IDE, tilslutte Arduino ved hjælp af et USB -kabel og uploade skitsen til Arduino.

Hvis skitsen uploades, og espalieret er korrekt tilsluttet, skal en af knapperne på espalieret blinke hurtigt tre gange, når der trykkes på det. Dette er en indikation af, at du har trykket på en ugyldig knap, fordi systemet kommer i sin "slukkede" tilstand, så det eneste gyldige tastetryk er det, der kræves for at tænde det.

For at tænde for systemet skal du trykke på den nederste venstre knap (#13) og holde den nede i mindst et sekund. Når du slipper knappen, skal alle lysdioder lyse kort, og derefter vil de nederste to rækker slukke, undtagen #13 (nederst til venstre). Systemet er nu i strømtilførsel og inaktiv tilstand.

Du kan prøve at bruge de to øverste rækker til at lysne og dæmpe LED -kanalerne som en første test. Hvis det virker, er du god til at gå videre til næste trin. Hvis ikke, tjek:

  1. LED strømforsyning er tilsluttet og tændt;
  2. Driverkortets MOSFET'er er korrekt kablet. Hvis du bruger de samme IRLB8721'er, som jeg brugte, skal du kontrollere:

    • Driver board signalindgange (MOSFET -porte, IRLB8721 pin 1) er forbundet til Arduino D9 = grøn, D10 = rød, D11 = blå (se note herunder);
    • LED -strip er forbundet til driverkort, og LED -farvekanaler er forbundet til MOSFET -afløb (IRLB8721 pin 2);
    • MOSFET -kildepinde (IRLB8721 pin 3) er forbundet til jorden på driverkortet;
  3. Jordforbindelse mellem driverkort og Arduino jordstift.

I det næste trin spiller vi med nogle af funktionerne i brugerfladen på knapperne.

BEMÆRK: Hvis din controller fungerer, men intensitetsknapperne ikke styrer de rigtige farver, skal du ikke bekymre dig og ikke genoprette! Bare gå ind i Sketch i Arduino IDE og rediger de RØDE, GRØNNE og BLÅ pin -definitioner nær toppen af filen.

Trin 5: Grundlæggende kontrolfunktioner

Grundlæggende kontrolfunktioner
Grundlæggende kontrolfunktioner

Nu hvor systemet er tændt, kan vi lege med nogle af knapperne og få det til at gøre ting.

Som jeg sagde i det foregående trin, når systemet tændes, kommer systemet op i sin "inaktiv" tilstand. I denne tilstand kan du bruge knapperne på de to øverste rækker til at øge og reducere farveintensiteten for hver af de røde, grønne og blå LED -kanaler. Hvis du bruger de hvide forøg/sænk -knapper, øger eller formindsker systemet intensiteten af alle tre kanaler lige og på lige store niveauer.

De nederste to rækker bruges til at afspille forudindstillede mønstre. Disse mønstre gemmes i Arduino's EEPROM. Når skitsen kører første gang, ser den, at EEPROM ikke har gemt nogen mønstre, og gemmer et sæt standardmønstre. Derefter kan du ændre disse mønstre, og dine ændringer gemmes i Arduino's EEPROM og erstatter det forudindstillede mønster. Dette sikrer, at dine mønstre overlever strømafbrydelser. Redigeringsfunktionen beskrives i det næste trin.

For nu skal du trykke kort på en af de forudindstillede knapper (de otte knapper i de nederste to rækker) for at køre det mønster, der er gemt for den knap. Knappen blinker, mens mønsteret kører. For at stoppe mønsteret skal du trykke kortvarigt på mønsterknappen igen. Mens et mønster kører, kan de hvide op/ned -knapper i de øverste rækker bruges til at ændre mønsterhastigheden.

Hvis du lader projektet være alene i et par sekunder uden at røre ved nogen knapper, vil du bemærke, at lysdioderne dæmpes. Dette er både for energibesparelse og for at undgå, at espalierne overbelyser enhver "stemning", LED'erne forsøger at skabe. Ved at trykke på en knap på espalieret vågner den igen.

For at slukke for systemet skal du trykke på og holde knappen nederst til venstre (#13) nede i et eller flere sekunder og slippe. Trellis og LED -båndet bliver mørkt.

Trin 6: Redigering af mønstre på tastaturet

Redigering af mønstre på tastaturet
Redigering af mønstre på tastaturet

Som jeg sagde i det foregående trin, gemmer skitsen otte standardmønstre i EEPROM første gang, den kører. Du kan ændre 7 af disse mønstre til noget andet, hvis du ønsker at bruge mønsterredigeringsfunktionen på tastaturet.

For at gå ind i mønsterredigeringstilstand skal du først beslutte, hvilken knap du vil redigere mønsteret til. Du kan vælge enhver anden knap end knappen nederst til venstre. Gå ind i mønsterredigeringstilstand ved at trykke længe (hold mere end et sekund nede) på den valgte mønsterknap. Når knappen slippes, lyser knappen konstant, og de to øverste rækker begynder at blinke. Dette angiver, at du er i redigeringstilstand.

Redigeringstilstanden begynder på det første trin i mønsteret og fortsætter, indtil du afslutter redigeringen eller redigerer det 16. trin (maks. 16 trin pr. Mønster). Ved hvert trin skal du bruge kanalintensitetsknapperne i de to øverste rækker til at vælge den farve, du ønsker til det trin. Tryk derefter kort på knappen til forudindstilling af mønster for at gemme den farve og gå videre til næste trin. På dit sidste trin, i stedet for at trykke kort, skal du bare trykke længe for at afslutte redigeringen.

Når du forlader mønsterredigering, afspilles mønsteret automatisk.

Det er det! Du har nu en RGB LED -controller, der vil sekvensere mønstre, som du kan programmere via tastaturet. Du kan stoppe her, eller hvis du vil bygge en mere formel version af dette projekt, skal du fortsætte med resten af trinene.

Trin 7: Bedre hardware: RGB LED Driver Shield og kabinet

Image
Image
Bedre hardware: RGB LED driverskærm og kabinet
Bedre hardware: RGB LED driverskærm og kabinet
Bedre hardware: RGB LED driverskærm og kabinet
Bedre hardware: RGB LED driverskærm og kabinet

Når jeg havde en fungerende prototype, vidste jeg, at jeg ikke kunne efterlade et blottet Arduino- og proto -bord på mine børns skriveborde som en permanent løsning. Jeg havde brug for et kabinet til projektet. Jeg besluttede også, at jeg ville lave et bedre driverbræt, og jeg tænkte, at det var den perfekte mulighed for at lave mit eget skjold.

Jeg ryddede op i mit papir skematisk ved at indtaste det i ExpressSCH, et gratis værktøj, der tilbydes af ExpressPCB, en brætfabrikant, der tilbyder billige korte opgaver af små pc -kort. Jeg har brugt ExpressPCB i over et årti på projekter, men bruger uanset hvilke værktøjer og fabrikanter du foretrækker.

Jeg tilføjede et par små funktioner til grundskematikken, så den ville fungere godt som et skjold for dette projekt. Jeg tilføjede ledningsplader til at forbinde Trellis, et strømstik, en pilotlampe og et stik til LED -strimlen. Jeg tilføjede også et sted til en kondensator på tværs af strømforsyningen. Det sidste kredsløb er vist her.

Jeg besluttede, at strøm til projektet skulle komme fra skjoldet. Den 12V, der leveres til skjoldet, driver både LED -strimlen og Arduino. Strøm til Arduino leveres ved at slutte forsyningsindgangen til Arduino's VIN-pin, som er tovejs (du kan levere strøm til Arduino på denne pin, eller hvis du slutter strøm til Arduino andre steder, giver den dig den medfølgende strøm på denne pin). Beskyttelsesdiode D1 forhindrer enhver strøm tilsluttet direkte til Arduino (f.eks. USB) i at forsøge at tænde lysdioderne.

Hvorfor ikke bruge Arduinos strømstik og bare tilslutte 12V der? Selvom jeg kunne have leveret 12V til Arduino's strømstik og brugt VIN -stiften til at få fat i denne strøm til skjoldet, var jeg bekymret for, at Arduino's D1 -diode og spor ikke ville være op til de høje strømme, der var mulige ved at køre LED'en strimler. Så jeg besluttede, at mit skjold ville overtage strømindgang og levere strøm til Arduino i stedet. Jeg havde også brug for 5V til espalieret, men Arduinos indbyggede strømregulering leverer 5V på flere ben, så jeg brugte en af dem til Trellis. Det reddede mig til at sætte et regulator kredsløb på skjoldet.

Jeg lagde derefter PCB'en ud. Jeg brugte nogle ressourcer, jeg fandt til at få de nøjagtige målinger til placering af stifterne til at møde overskrifterne på Arduino Uno. Lidt omhu og det matchede i første forsøg. Der er ikke meget ved selve skjoldkredsløbet, så jeg havde masser af plads. Jeg lagde brede spor for LED-belastningerne, så der ville være masser af strømførende kapacitet til mine behov. Jeg satte MOSFET'erne ud, hvor de kunne monteres flade, med eller uden kølelegemer. Indtil videre har jeg ikke haft brug for kølelegemer til det antal lysdioder, jeg har brugt, men pladsen er der, hvis det er nødvendigt.

Jeg tilføjede også huller, der matchede monteringshuller på espalieret, så jeg kunne bruge stand-offs til at montere espalieret på mit skjold. Med skjoldet tilsluttet Arduino, og espalierne suspenderet på stand-offs over skjoldet, skulle alt være pænt og solidt.

Jeg printede derefter bræddelayoutet og limede det til et stykke skumkerne og indsatte mine dele for at sikre, at alt passede. Alt godt, så jeg sendte ordren afsted.

Jeg begyndte derefter at arbejde på et kabinet. Ved hjælp af Fusion 360 designede jeg et enkelt kabinet til at indeholde de tre brædder (Arduino Uno, skjold og espalier). Huller i kabinettet tillader tilslutning til Arduino's USB -port, og naturligvis adgang til LED -stripen og tilslut strømstik. Arduino -stikket er dækket af kabinettet for at sikre, at det ikke bruges. Efter et par prototyper til testmontering havde jeg endelig et design, jeg var tilfreds med. Jeg har postet STL -filerne til kabinettet til Thingiverse.

Fremover laver jeg en version af tavlen, som en Nano kan sluttes direkte til. Dette ville gøre projektet endnu mere kompakt. Indtil da kan du også bruge en Nano til Uno -skærmadapter som denne.

Hvis du vil gøre skjoldet, er det her, du skal bruge ud over de dele, der er nævnt i trin 1:

  • RGB LED Driver Shield PC -kort (fra ExpressPCB eller andre; du kan downloade filerne fra min Github -repo til projektet);
  • 1N4002 diode;
  • 100uF 25V radial elektrolytisk kondensator (brug 220uF eller 470uF ved stor LED -belastning);
  • Strømstik, PJ202-AH (5A-klassificeret model).

Følgende dele er valgfrie:

  • 3 mm LED - enhver farve, til pilotlampe (kan udelades)
  • 1500 ohm modstand - kun nødvendig ved brug af LED -pilotlampe

Anbefalede: