Innholdsfortegnelse:

Programmerbar RGB LED Sequencer (ved bruk av Arduino og Adafruit Trellis): 7 trinn (med bilder)
Programmerbar RGB LED Sequencer (ved bruk av Arduino og Adafruit Trellis): 7 trinn (med bilder)

Video: Programmerbar RGB LED Sequencer (ved bruk av Arduino og Adafruit Trellis): 7 trinn (med bilder)

Video: Programmerbar RGB LED Sequencer (ved bruk av Arduino og Adafruit Trellis): 7 trinn (med bilder)
Video: String Waterproof DMX RGB Pixel 3D led Ball Rgb Rgbw Dc24v Dot Pixel Outdoor Facade Building Led Poi 2024, Juli
Anonim
Image
Image
Koble opp førerkortet
Koble opp førerkortet

Mine sønner ville at fargeledd -strips skulle lyse opp skrivebordene sine, og jeg ønsket ikke å bruke en hermetisert RGB -stripekontroller, fordi jeg visste at de skulle gå lei av de faste mønstrene disse kontrollerne har. Jeg tenkte også at det ville være en flott mulighet til å lage et undervisningsverktøy for dem som de kunne bruke til å skjerpe programmerings- og elektronikkferdighetene jeg har lært dem. Dette er resultatet.

Jeg skal vise deg hvordan du bygger denne enkle, programmerbare RGB LED -stripekontrolleren ved hjelp av en Arduino Uno (eller Nano), en Adafruit Trellis og en håndfull andre deler.

Adafruit Trellis er en av mine nye favorittleker fra Lady Ada og crew. Først av alt, det er bare $ 9,95 for brettet, og ytterligere $ 4,95 for silikonelastomer -knappputen (prisene i skrivende stund). Det er en god del for en 16-knappers 4x4-matrise med LED-evne. Det følger ikke med noen lysdioder, du må levere dem, men det gir deg fleksibiliteten til å velge fargene du vil ha (og holder kostnadene og kompleksiteten nede i forhold til å bygge i adresserbare lysdioder). For å bygge dette prosjektet som mitt, trenger du en håndfull 3 mm lysdioder. Jeg brukte 2 røde, 2 grønne, 2 blå, 4 gule og 6 hvite.

Trellis bruker I2C til å kommunisere, så det krever bare to I/O -pinner (data og klokke) for å kontrollere 16 knapper og 16 lysdioder.

Du kan gjøre maskinvaredelen av dette prosjektet på et lite prototavle, slik jeg gjorde prototypen min. Jeg skjønte raskt at jeg trengte noe ryddigere og mer på skrivebordene (et rent Arduino- og proto -brett som ville slå for mye ville være for skjørt), så jeg laget mitt eget skjold for å drive LED -stripene. Instruksjoner og filer for å bygge skjoldet er inkludert i det siste trinnet.

Sjåføren bruker tre IRLB8721 MOSFET -er og tre motstander. Og selvfølgelig trenger du en LED -stripe for å kjøre; stort sett enhver vanlig 12V RGB LED -stripe vil gjøre. Dette er enkle lysdioder, som SMD 5050, ikke fancy individuelt adresserbare (ingen NeoPixels osv.)-det er et annet prosjekt! Du trenger også en 12V strømforsyning som er stor nok til å drive antall lysdioder du har tenkt å bruke.

Så, for å oppsummere, her er de grunnleggende maskinvarebehovene for dette prosjektet:

  • Én Arduino Uno eller Nano (disse instruksjonene er for Uno med hunnhoder installert, men Nano på et brødbrett fungerer fint) (Adafruit, Amazon, Mouser);
  • Ett Adafruit Trellis -brett og silikon knappepute (Adafruit);
  • Tre IRLB8721 N-kanal MOSFET (Adafruit, Amazon, Mouser);
  • Tre 1K -motstander (Amazon, Mouser);
  • Tre 220 ohm motstander (Amazon, Mouser)
  • Ett lite prototavle (mitt første var 1/4 størrelse-velg hvilken som helst størrelse du kan jobbe komfortabelt med) (Adafruit, Amazon);
  • En 12V RGB LED -stripe (SMD 5050) (Adafruit, Amazon);
  • 12V strømforsyning - velg en effekt passende for antall lysdioder du planlegger å kjøre.

Nødvendig ansvarsfraskrivelse: koblingene ovenfor er gitt for din bekvemmelighet og er ikke en påtegning fra noe produkt eller leverandør; Jeg tjener heller ikke på kjøp som er gjort på disse koblingene. Hvis du har leverandører du liker bedre, så støtt dem for all del!

La oss komme i gang…

Trinn 1: Koble opp førerkortet

Koble opp førerkortet
Koble opp førerkortet

Her er LED -driverkretsen. Det er veldig enkelt. Den bruker en IRBLxxx N-kanal MOSFET for hver kanal på LED-stripen. LED -stripen er vanlig anode, noe som betyr at +12V sendes til LED -stripen, og de røde, grønne og blå LED -kanalene styres ved å gi jord på den respektive tilkoblingen til stripen. Så, vi vil koble avløpet til MOSFET -ene til LED -fargekanalene og kilde til jord. Portene vil bli koblet til Arduino digitale utganger, og motstandene gir en pull-down som sikrer at hver MOSFET slås helt på eller av etter behov.

Arduino tilbyr pulsbreddemodulasjon på noen av de digitale utgangene, så vi bruker disse utgangene (spesielt D9, D10, D11) slik at intensiteten til hver fargekanal kan kontrolleres.

Hvis du er forvirret om hva du skal koble til på IRLB8721 MOSFETene, holder du en i hånden med forsiden mot deg som vist på bildet ovenfor. Pinnen til venstre (pinne 1) er porten, og kobles til en Arduino digital utgangspinne og motstanden (den andre enden av motstanden skal kobles til bakken). Pinnen i midten (pin 2) er sluket, og kobles til LED -stripens fargekanal. Pinnen til høyre (pinne 3) er kilden, og er koblet til bakken. Sørg for å holde oversikt over hvilken transistor som kobles til hvilken LED -fargekanal.

Jeg vil ikke gå inn på detaljene om hvordan du lodder opp prototavler. Ærlig talt, jeg hater det, og jeg er ikke god til det. Men på godt og vondt fungerer det, og det er en rask og skitten måte å få en solid prototype eller engangsarbeid på. Mitt første brett er vist her.

Du kan også planlegge dette. Det ville sikkert være raskere enn å lodde opp alt på et proto -brett, men mindre permanent.

Når du har koblet driveren din, kobler du MOSFET -inngangene til Arduino digitale utgangspinner: D9 for den grønne kanalen, D10 for den røde kanalen og D11 for den blå kanalen. Koble LED -stripen til protokollet ditt også.

Sørg også for at førerkortet har en separat tilkobling fra bakken til en av Arduino -bakkepinnene.

Til slutt, for LED -strøm, kobler du den negative (jord) ledningen til 12V -forsyningen til en bakke på førerkortet. Koble deretter den positive ledningen til 12V -forsyningen til anodledningen på LED -stripen din (dette er en svart ledning på kablene mine vist på bildet).

Til slutt endte jeg opp med å designe et PC -kortskjerm som monteres på Uno, og som også har monteringsstøtte for Trellis. Dette ga et mye mer ferdig sluttprodukt. Hvis du vil gjøre det, kan du hoppe over å bruke prototavlen som beskrevet her og bare få laget skjoldbrettet. At alt er beskrevet i det siste trinnet.

Trinn 2: Sett lysdioder på espalieret

Sett lysdioder på espalieret
Sett lysdioder på espalieret

Trellis -brettet har tomme pads for 3 mm lysdioder som vi må fylle. Legg merke til symbolene på putene-det er en veldig subtil "+" ved siden av puten for å angi anodesiden. Hvis du holder brettet slik at teksten er med høyre side opp, er det også en notasjon øverst og nederst på brettet som informerer om at LED-anodene er til venstre.

Lodd dine 3 mm lysdioder til brettet. Når du ser på forsiden av brettet, skriver du høyre side opp, bryteren øverst til venstre/LED er #1, øvre høyre er #4, nederst til venstre er #13 og nederst til høyre er #16. Her er fargene jeg brukte i hver posisjon (og det er en grunn til det, så jeg anbefaler deg å følge mønsteret mitt i hvert fall for de to øverste radene):

1 - rød2 - grønn3 - blå4 - hvit5 - rød6 - grønn7 - blå8 - hvit9 - hvit10 - hvit11 - gul12 - gul13 - hvit14 - hvit15 - gul16 - gul

CC Attribution: Trellis -bildet ovenfor er av Adafruit og brukt under Creative Commons - Attribution/ShareAlike -lisensen.

Trinn 3: Koble espalieret til Arduino

Koble espalieret til Arduino
Koble espalieret til Arduino

Trellis har fem ledningsunderlag, men bare fire brukes i dette prosjektet. Trellis trenger SDA og SCL for å kommunisere med Arduino (ved bruk av I2C), og 5V og GND for strøm. Den siste puten, INT, brukes ikke. Trellis -putene vises på alle fire kantene av brettet. Du kan bruke alle settene du ønsker.

Lodd en solid ledning til 5V-, GND-, SDA- og SCL -putene. Deretter kobler du 5V -ledningen til 5V -pinnen på Arduino, GND til jordpinnen, SDA -ledningen til A4 og SCL -ledningen til A5.

Deretter skal vi slå på Arduino og laste opp skissen til den. Nå er det en god tid å sette silikon -knappputen på Trellis -brettet. Den sitter bare på brettet (merk "knubbene" på bunnen av puten som passer inn i hullene på brettet), så det kan være lurt å bruke et par båndbiter for å holde kantene på puten til brettet for nå.

CC Attribution: Trellis ledningsbildet ovenfor er en beskåret versjon av dette bildet av Adafruit, og brukes under Creative Commons - Attribution/ShareAlike -lisensen.

Trinn 4: Last ned prosjektskissen og last den opp til Arduino

Du kan laste ned skissen fra min Github -repo for dette prosjektet.

Når du har fått det, åpner du det i Arduino IDE, kobler Arduino med en USB -kabel og laster opp skissen til Arduino.

Hvis skissen er lastet opp og espalieret er riktig tilkoblet, bør noen av knappene på espalieret blinke raskt tre ganger når det trykkes. Dette er en indikasjon på at du har trykket på en ugyldig knapp, fordi systemet kommer i "av" -tilstand, så det eneste gyldige tastetrykket er det som kreves for å slå det på.

For å slå på systemet, trykk og hold nede venstre knapp (#13) i minst ett sekund. Når du slipper knappen, skal alle lysdiodene lyse kort, og da vil de to nederste radene slukke, bortsett fra #13 (nederst til venstre). Systemet er nå påslått og inaktiv.

Du kan prøve å bruke de to øverste radene til å lysne og dempe LED -kanalene som en første test. Hvis det fungerer, er du god til å gå videre til neste trinn. Hvis ikke, sjekk:

  1. LED strømforsyning er tilkoblet og på;
  2. Driverkortets MOSFET -er er riktig kablet. Hvis du bruker de samme IRLB8721 -ene jeg brukte, sjekk:

    • Førerkortets signalinnganger (MOSFET -porter, IRLB8721 pin 1) er koblet til Arduino D9 = grønn, D10 = rød, D11 = blå (se merknad nedenfor);
    • LED -stripe er koblet til driverkort og LED -fargekanaler er koblet til MOSFET -avløp (IRLB8721 pin 2);
    • MOSFET kildepinner (IRLB8721 pin 3) er koblet til bakken på driverkortet;
  3. Jordforbindelse mellom førerkortet og Arduino jordpinne.

I det neste trinnet skal vi leke med noen av funksjonene i knappepute -brukergrensesnittet.

MERK: Hvis kontrolleren din fungerer, men intensitetsknappene ikke kontrollerer de riktige fargene, ikke bekymre deg og ikke koble til igjen! Bare gå inn i Sketch i Arduino IDE og modifiser DE RØDE, GRØNNE og BLÅ pin -definisjonene nær toppen av filen.

Trinn 5: Grunnleggende kontrollfunksjoner

Grunnleggende kontrollfunksjoner
Grunnleggende kontrollfunksjoner

Nå som systemet er slått på, kan vi leke med noen av knappene og få det til å gjøre ting.

Som jeg sa i forrige trinn, når systemet slås på, kommer systemet opp i "inaktiv" tilstand. I denne tilstanden kan du bruke knappene på de to øverste radene for å øke og redusere fargeintensiteten til hver av de røde, grønne og blå LED -kanalene. Hvis du bruker de hvite økning/reduseringsknappene, øker eller reduserer systemet intensiteten til alle tre kanalene likt og på like nivåer.

De to nederste radene brukes til å spille av forhåndsinnstilte mønstre. Disse mønstrene er lagret i Arduino's EEPROM. Når skissen kjøres for første gang, ser den at EEPROM ikke har noen mønstre lagret, og lagrer et sett med standardmønstre. Deretter kan du endre disse mønstrene, og endringene lagres i Arduino's EEPROM, og erstatter det forhåndsinnstilte mønsteret. Dette sikrer at mønstrene dine overlever strømbrudd. Redigeringsfunksjonen er beskrevet i neste trinn.

For øyeblikket trykker du kort på en av de forhåndsinnstilte knappene (de åtte knappene i de to nederste radene) for å kjøre mønsteret som er lagret for den knappen. Knappen blinker mens mønsteret kjører. For å stoppe mønsteret, trykk kort på mønsterknappen igjen. Mens et mønster kjører, kan de hvite opp/ned -knappene i de øverste radene brukes til å endre mønsterhastigheten.

Hvis du lar prosjektet være i fred i noen sekunder uten å berøre noen knapper, vil du merke at lysdiodene lyser. Dette er både for strømsparing og for å unngå at espalierene overbelyser enhver "stemning" lysdiodene prøver å skape. Ved å trykke på en knapp på espalieret vil den vekke igjen.

For å slå av systemet, trykk og hold nede venstre (#13) -knappen i ett eller flere sekunder og slipp. Trellis- og LED -stripen blir mørk.

Trinn 6: Redigere mønstre på tastaturet

Redigere mønstre på tastaturet
Redigere mønstre på tastaturet

Som jeg sa i forrige trinn, lagrer skissen åtte standardmønstre i EEPROM første gang den kjøres. Du kan endre 7 av disse mønstrene til noe annet hvis du ønsker å bruke mønsterredigeringsmodus på knappene.

For å gå inn i mønsterredigeringsmodus, må du først bestemme hvilken knapp du vil redigere mønsteret for. Du kan velge hvilken som helst annen knapp enn knappen nederst til venstre. Gå inn i mønsterredigeringsmodus ved å trykke lenge på (hold inne mer enn ett sekund) på den valgte mønsterknappen. Når den slippes, lyser knappen konstant, og de to øverste radene begynner å blinke. Dette indikerer at du er i redigeringsmodus.

Redigeringsmodus begynner i det første trinnet i mønsteret og fortsetter til du avslutter redigeringen eller redigerer det 16. trinnet (maks. 16 trinn per mønster). Ved hvert trinn bruker du kanalintensitetsknappene i de to øverste radene for å velge fargen du vil ha for det trinnet. Trykk deretter kort på forhåndsinnstillingsknappen for å lagre fargen og gå videre til neste trinn. På det siste trinnet, i stedet for å trykke kort, bare trykk lenge for å avslutte redigeringen.

Etter at du har avsluttet mønsterredigering, spilles mønsteret automatisk.

Det er det! Du har nå en RGB LED -kontroller som vil sekvensere mønstre som du kan programmere via tastaturet. Du kan stoppe her, eller hvis du vil bygge en mer formell versjon av dette prosjektet, fortsett gjennom resten av trinnene.

Trinn 7: Bedre maskinvare: RGB LED driverskjerm og kabinett

Image
Image
Bedre maskinvare: RGB LED driverskjerm og kabinett
Bedre maskinvare: RGB LED driverskjerm og kabinett
Bedre maskinvare: RGB LED driverskjerm og kabinett
Bedre maskinvare: RGB LED driverskjerm og kabinett

Når jeg hadde en fungerende prototype, visste jeg at jeg ikke kunne la et bart Arduino- og proto -brett stå på barna mine som en permanent løsning. Jeg trengte et kabinett for prosjektet. Jeg bestemte meg også for at jeg skulle lage et bedre sjåførbrett, og jeg syntes det var den perfekte muligheten til å lage mitt eget skjold.

Jeg ryddet opp i papirskjemaet mitt ved å skrive det inn i ExpressSCH, et gratis verktøy som tilbys av ExpressPCB, en brettprodusent som tilbyr rimelige korte oppgaver med små PC -kort. Jeg har brukt ExpressPCB i over et tiår på prosjekter, men bruker uansett hvilke verktøy og produsenter du foretrekker.

Jeg la til et par små funksjoner i grunnskjemaet slik at det skulle fungere godt som et skjold for dette prosjektet. Jeg la til ledningsnett for å koble Trellis, en strømkontakt, en pilotlampe og en kontakt for LED -stripen. Jeg la også til et sted for en kondensator på tvers av strømforsyningen. Den siste kretsen er vist her.

Jeg bestemte meg for at strømmen til prosjektet skulle komme fra skjoldet. 12V levert til skjoldet driver både LED -stripen og Arduino. Strøm til Arduino leveres ved å koble forsyningsinngangen til Arduino's VIN-pinne, som er toveis (du kan levere strøm til Arduino på denne pinnen, eller hvis du kobler strøm til Arduino andre steder, vil den gi deg den medfølgende strøm på denne pinnen). Beskyttelsesdiode D1 forhindrer at strøm som er koblet direkte til Arduino (f.eks. USB) fra å prøve å drive lysdiodene.

Hvorfor ikke bruke Arduinos strømkontakt og bare koble til 12V der? Selv om jeg kunne ha levert 12V til Arduino -strømkontakten og brukt VIN -pinnen til å ta tak i strømmen til skjoldet, var jeg bekymret for at Arduino's D1 -diode og spor ikke kom til å være opp til de høye strømene som er mulige for å drive LED -en strimler. Så jeg bestemte meg for at skjoldet mitt ville ta over strøminngang og levere strøm til Arduino i stedet. Jeg trengte også 5V for espalieret, men Arduino's innebygde kraftregulering leverer 5V på flere pinner, så jeg brukte en av dem til Trellis. Det reddet meg til å sette en regulator krets på skjoldet.

Deretter la jeg ut kretskortet. Jeg brukte noen ressurser jeg fant for å få de eksakte målingene for plassering av pinnene for å møte topptekstene på Arduino Uno. Litt flid og det stemte overens på første forsøk. Det er ikke mye til selve skjermkretsen, så jeg hadde god plass. Jeg la ut store spor for LED-lastene, så det ville være rikelig med strømførende kapasitet for mine behov. Jeg satte MOSFETene ut der de kunne monteres flatt, med eller uten kjøleribber. Så langt har jeg ikke trengt kjøleribber for antall lysdioder jeg har brukt, men plassen er der om nødvendig.

Jeg har også lagt til hull som matchet monteringshullene på espalieret, slik at jeg kunne bruke stand-offs for å montere espalieret på skjoldet mitt. Med skjoldet koblet til Arduino, og Trellis suspendert på stand-offs over skjoldet, skal alt være fint og solid.

Jeg trykte deretter brettoppsettet og limte det på et stykke skumkjerne, og satte inn delene mine for å sikre at alt passet. Alt bra, så jeg sendte ordren.

Jeg begynte deretter å jobbe med et skap. Ved å bruke Fusion 360 designet jeg et enkelt kabinett for å inneholde de tre brettene (Arduino Uno, skjold og espalier). Hull i kabinettet tillater tilkobling til Arduino USB -port, og selvfølgelig tilgang til LED -stripe -tilkobling og skjermstrømkontakt. Arduino -strømkontakten er dekket av kabinettet for å sikre at den ikke brukes. Etter et par prototyper for testmontering, fikk jeg endelig et design jeg var fornøyd med. Jeg har lagt ut STL -filene for kabinettet til Thingiverse.

I fremtiden vil jeg lage en versjon av brettet som en Nano kan kobles til direkte. Dette ville gjøre prosjektet enda mer kompakt. Inntil da kan du også bruke en Nano til Uno -skjermadapter som denne.

Hvis du skal gjøre skjoldet, er det du trenger i tillegg til delene nevnt i trinn 1:

  • RGB LED Driver Shield PC -kort (fra ExpressPCB eller andre; du kan laste ned filene fra min Github -repo for prosjektet);
  • 1N4002 diode;
  • 100uF 25V radial elektrolytisk kondensator (bruk 220uF eller 470uF ved stor LED -belastning);
  • Strømkontakt, PJ202-AH (5A-modell).

Følgende deler er valgfrie:

  • 3 mm LED - hvilken som helst farge, for pilotlampe (kan utelates)
  • 1500 ohm motstand - bare nødvendig hvis du bruker LED -pilotlampe

Anbefalt: