Innehållsförteckning:

Programmerbar RGB LED -sequencer (med Arduino och Adafruit Trellis): 7 steg (med bilder)
Programmerbar RGB LED -sequencer (med Arduino och Adafruit Trellis): 7 steg (med bilder)

Video: Programmerbar RGB LED -sequencer (med Arduino och Adafruit Trellis): 7 steg (med bilder)

Video: Programmerbar RGB LED -sequencer (med Arduino och Adafruit Trellis): 7 steg (med bilder)
Video: Arduino RGB led:s PWM (skolarbete) 2024, November
Anonim
Image
Image
Koppla upp förarkortet
Koppla upp förarkortet

Mina söner ville att färg -LED -remsor skulle lysa upp sina skrivbord, och jag ville inte använda en konserverad RGB -stripkontroll, eftersom jag visste att de skulle bli uttråkad av de fasta mönstren som dessa kontroller har. Jag trodde också att det skulle vara ett utmärkt tillfälle att skapa ett undervisningsverktyg för dem som de kunde använda för att skärpa de programmerings- och elektronikförmågor jag har lärt dem. Detta är resultatet.

Jag ska visa dig hur du bygger denna enkla, programmerbara RGB LED -stripkontroll med en Arduino Uno (eller Nano), en Adafruit Trellis och en handfull andra delar.

Adafruit Trellis är en av mina nya favoritleksaker från Lady Ada och besättningen. Först och främst är det bara $ 9,95 för brädet, och ytterligare $ 4,95 för silikonelastomer knappkudde (priser från och med denna skrivning). Det är mycket för en 16-knappars 4x4-matris med LED-kapacitet. Det kommer inte med några lysdioder monterade, du måste leverera dem, men det ger dig flexibiliteten att välja de färger du vill ha (och håller kostnaden och komplexiteten nere jämfört med att bygga in adresserbara lysdioder). För att bygga detta projekt som mitt behöver du en handfull 3 mm lysdioder. Jag använde 2 röda, 2 gröna, 2 blå, 4 gula och 6 vita.

Trellis använder I2C för att kommunicera, så det kräver bara två I/O -stift (data och klocka) för att styra 16 knappar och 16 lysdioder.

Du kan göra hårdvarudelen av detta projekt på ett litet prototavla, vilket är hur jag gjorde min prototyp. Jag insåg snabbt att jag behövde något snyggare och mer på deras skrivbord (en naken Arduino och proto -bräda som knackade runt skulle vara för ömtålig), så jag gjorde min egen sköld för att driva LED -remsorna. Instruktioner och filer för att bygga skölden ingår i det sista steget.

Föraren använder tre IRLB8721 MOSFET och tre motstånd. Och självklart behöver du en LED -remsa för att köra; i stort sett alla vanliga 12V RGB LED -remsor kommer att göra. Dessa är enkla lysdioder, som SMD 5050, inte snygga individuellt adresserbara (inga NeoPixels, etc.)-det är ett annat projekt! Du behöver också en 12V strömförsörjning som är tillräckligt stor för att driva antalet lysdioder du tänker använda.

Så, för att sammanfatta, här är de grundläggande maskinvarubehoven för detta projekt:

  • En Arduino Uno eller Nano (dessa instruktioner är för Uno med kvinnliga sidhuvuden installerade, men Nano på en brödbräda fungerar bra) (Adafruit, Amazon, Mouser);
  • En Adafruit Trellis -bräda och knappar i silikon (Adafruit);
  • Tre IRLB8721 N-kanal MOSFET (Adafruit, Amazon, Mouser);
  • Tre 1K -motstånd (Amazon, Mouser);
  • Tre 220 ohm motstånd (Amazon, Mouser)
  • En liten prototavla (min första var 1/4 storlek-välj vilken storlek som helst du kan arbeta bekvämt med) (Adafruit, Amazon);
  • En 12V RGB LED -remsa (SMD 5050) (Adafruit, Amazon);
  • 12V strömförsörjning - välj en effekt som är lämplig för antalet lysdioder du planerar att driva.

Ansvarsfriskrivning: länkarna ovan tillhandahålls för din bekvämlighet och är inte ett godkännande av någon produkt eller leverantör; inte heller tjänar jag på några köp som görs på dessa länkar. Om du har leverantörer du gillar bättre, stöd för alla medel!

Låt oss börja…

Steg 1: Koppla upp förarkortet

Koppla upp förarkortet
Koppla upp förarkortet

Här är LED -förarkretsen. Det är väldigt enkelt. Den använder en IRBLxxx N-kanal MOSFET för varje kanal på LED-remsan. LED -remsan är vanlig anod, vilket betyder att +12V skickas till LED -remsan och de röda, gröna och blå LED -kanalerna styrs genom att ge jord på respektive anslutning till remsan. Så, vi kommer att ansluta avloppet för MOSFET: erna till LED -färgkanalerna och källa till jord. Portarna kommer att anslutas till Arduino digitala utgångar, och motstånden ger en neddragning som säkerställer att varje MOSFET slås på eller av helt efter behov.

Arduino erbjuder pulsbreddsmodulering på några av dess digitala utgångar, så vi använder dessa utgångar (specifikt D9, D10, D11) så att intensiteten för varje färgkanal kan kontrolleras.

Om du är förvirrad om vad du ska ansluta var på IRLB8721 MOSFET: n, håll en i handen med framsidan mot dig som visas på bilden ovan. Stiftet till vänster (stift 1) är porten och ansluts till en Arduino digital utgångsstift och motståndet (motståndets andra ände ska anslutas till jord). Stiftet i mitten (stift 2) är avloppet och ansluts till LED -remsans färgkanal. Stiftet till höger (stift 3) är källan och är ansluten till jord. Se till att du håller reda på vilken transistor som ansluter till vilken LED -färgkanal.

Jag kommer inte att gå in på detaljerna om hur man lödar upp proto -brädor. Ärligt talat hatar jag det, och jag är inte bra på det. Men på gott och ont fungerar det, och det är ett snabbt och smutsigt sätt att få en solid prototyp eller engångsarbete. Min första tavla visas här.

Du kan också göra det här. Det skulle säkert vara snabbare än att lödda upp allt på en proto board, men mindre permanent.

När du har anslutit din drivrutin ansluter du MOSFET -portingångarna till Arduino digitala utgångsstiften: D9 för den gröna kanalen, D10 för den röda kanalen och D11 för den blå kanalen. Anslut även LED -remsan till din proto board.

Se också till att ditt förarkort har en separat anslutning från marken till en av Arduinos markstift.

Slutligen, för LED -ström, anslut den negativa (jordade) ledningen för 12V -matningen till en jord på ditt förarkort. Anslut sedan den positiva ledningen för 12V -matningen till anodkabeln på din LED -remsa (detta är en svart ledning på mina kablar som visas på bilden).

Till slut slutade jag med att designa en PC board -skärm som monteras på Uno, och som också har ett monteringsstöd för Trellis. Detta gav en mycket mer färdig slutprodukt. Om du vill göra det kan du hoppa över att använda prototavlan enligt beskrivningen här och bara få sköldbrädan gjord. Att allt beskrivs i det sista steget.

Steg 2: Sätt lysdioder på spaljén

Sätt lysdioder på Trellis
Sätt lysdioder på Trellis

Trellis -brädan har tomma kuddar för 3 mm lysdioder som vi måste fylla. Notera noggrant symbolerna på plattorna-det finns ett mycket subtilt "+" bredvid plattan för att ange anodsidan. Om du håller tavlan så att texten är med höger sida uppåt finns det också en notation längst upp och ned på tavlan som informerar om att LED-anoderna är till vänster.

Löd dina 3 mm lysdioder på brädet. Tittar du på framsidan av tavlan, text höger sida uppåt, den övre vänstra omkopplaren/LED-läget är #1, den övre högra är #4, den nedre vänstra är #13 och den nedre högra är #16. Här är färgerna jag använde i varje position (och det finns en anledning varför, så jag råder dig att följa mitt mönster åtminstone för de två översta raderna):

1 - röd2 - grön3 - blå4 - vit5 - röd6 - grön7 - blå8 - vit9 - vit10 - vit11 - gul12 - gul13 - vit14 - vit15 - gul16 - gul

CC Attribution: Trellis -bilden ovan är av Adafruit och används under Creative Commons - Attribution/ShareAlike -licensen.

Steg 3: Anslut spaljén till Arduino

Anslut spaljén till Arduino
Anslut spaljén till Arduino

Trellis har fem ledningsplattor, men endast fyra används i detta projekt. Trellis behöver SDA och SCL för att kommunicera med Arduino (med I2C) och 5V och GND för ström. Den sista plattan, INT, används inte. Trellis -kuddarna visas på brädans alla fyra kanter. Du kan använda vilken uppsättning kuddar du vill.

Löd en solid sammankopplingskabel till 5V, GND, SDA och SCL -plattorna. Anslut sedan 5V -kabeln till 5V -stiftet på Arduino, GND till jordstiftet, SDA -kabeln till A4 och SCL -kabeln till A5.

Därefter ska vi slå på Arduino och ladda upp skissen till den. Nu är det en bra tid att sätta silikonknappsatsen på Trellis -kortet. Det sitter bara på brädet (notera "nubbarna" på undersidan av dynan som passar in i hålen på brädet), så du kanske vill använda ett par tejpbitar för att hålla dynans kanter vid brädet för nu.

CC Attribution: Trellis wiring -bilden ovan är en beskuren version av denna bild av Adafruit, och används under Creative Commons - Attribution/ShareAlike -licensen.

Steg 4: Ladda ner projektskissen och ladda upp den till Arduino

Du kan ladda ner skissen från min Github -repo för detta projekt.

När du har fått det, öppna det i Arduino IDE, anslut Arduino med en USB -kabel och ladda upp skissen till Arduino.

Om skissen laddas upp och spaljén är korrekt ansluten bör någon av knapparna på spaljén blinka snabbt tre gånger när den trycks ned. Detta är en indikation på att du har tryckt på en ogiltig knapp, eftersom systemet kommer i "av" -läge, så den enda giltiga knapptryckningen är den som krävs för att slå på den.

För att slå på systemet, håll ned den nedre vänstra knappen (#13) i minst en sekund. När du släpper knappen ska alla lysdioder lysa kort och sedan släcks de två nedre raderna, förutom #13 (längst ner till vänster). Systemet är nu igång och i viloläge.

Du kan försöka använda de två översta raderna för att lysa upp och dimma LED -kanalerna som ett första test. Om det fungerar kan du gå vidare till nästa steg. Om inte, kontrollera:

  1. LED -strömförsörjning är ansluten och på;
  2. Förarkortets MOSFET är korrekt anslutna. Om du använder samma IRLB8721 som jag använde, kontrollera:

    • Förarkortets signalingångar (MOSFET -grindar, IRLB8721 stift 1) är anslutna till Arduino D9 = grön, D10 = röd, D11 = blå (se notering nedan);
    • LED -remsa är ansluten till förarkortet och LED -färgkanaler är anslutna till MOSFET -avlopp (IRLB8721 stift 2);
    • MOSFET -källpinnar (IRLB8721 stift 3) är anslutna till jord på förarkortet;
  3. Jordanslutning mellan förarkortet och Arduino jordstift.

I nästa steg kommer vi att spela med några av funktionerna i knappsatsens användargränssnitt.

OBS: Om din styrenhet fungerar men intensitetsknapparna inte styr rätt färger, oroa dig inte och lägg inte om kabeln! Gå bara in i Skissen i Arduino IDE och ändra de RÖDA, GRÖNA och BLÅ stiftdefinitionerna nära toppen av filen.

Steg 5: Grundläggande kontrollfunktioner

Grundläggande kontrollfunktioner
Grundläggande kontrollfunktioner

Nu när systemet startas kan vi leka med några av knapparna och få det att göra saker.

Som jag sa i föregående steg, när systemet startas, kommer systemet upp i sitt "inaktiv" tillstånd. I detta tillstånd kan du använda knapparna på de två översta raderna för att öka och minska färgintensiteten för var och en av de röda, gröna och blå LED -kanalerna. Om du använder de vita öknings-/minskningsknapparna ökar eller minskar systemet intensiteten för alla tre kanalerna lika och på lika stora nivåer.

De två nedre raderna används för att spela upp förinställda mönster. Dessa mönster lagras i Arduinos EEPROM. När skissen körs för första gången ser den att EEPROM inte har några mönster lagrade och lagrar en uppsättning standardmönster. Därefter kan du ändra dessa mönster, och dina ändringar lagras i Arduinos EEPROM och ersätter det förinställda mönstret. Detta säkerställer att dina mönster överlever strömavbrott. Redigeringsfunktionen beskrivs i nästa steg.

För tillfället, tryck kort på någon av de förinställda knapparna (de åtta knapparna i de två nedre raderna) för att köra mönstret som är lagrat för den knappen. Knappen blinkar medan mönstret körs. För att stoppa mönstret, tryck kort på mönsterknappen igen. Medan ett mönster körs kan de vita upp/ner -knapparna i de översta raderna användas för att ändra mönsterhastigheten.

Om du lämnar projektet ensam i några sekunder utan att trycka på några knappar märker du att lysdioderna blir svaga. Detta är både för att spara energi och för att undvika att spaljén överbelyser varje "humör" som lysdioderna försöker skapa. Om du trycker på en knapp på spaljén väcks den igen.

För att stänga av systemet, håll ned den nedre vänstra (#13) knappen i en eller flera sekunder och släpp. Trellis- och LED -remsan blir mörk.

Steg 6: Redigera mönster på knappsatsen

Redigera mönster på knappsatsen
Redigera mönster på knappsatsen

Som jag sa i föregående steg lagrar skissen åtta standardmönster i EEPROM första gången den körs. Du kan ändra 7 av dessa mönster till något annat om du vill använda mönsterredigeringsläget på knappsatsen.

För att gå in i mönsterredigeringsläge, bestäm först vilken knapp du vill redigera mönstret för. Du kan välja vilken knapp som helst än den nedre vänstra knappen. Gå in i mönsterredigeringsläget genom att trycka länge (håll ned mer än en sekund) på den valda mönsterknappen. När knappen släpps lyser knappen fast och de två övre raderna börjar blinka. Detta indikerar att du är i redigeringsläge.

Redigeringsläget börjar i det första steget i mönstret och fortsätter tills du avslutar redigeringen eller redigerar det 16: e steget (max 16 steg per mönster). Vid varje steg använder du kanalintensitetsknapparna i de två översta raderna för att välja den färg du vill ha för det steget. Tryck sedan kort på den förinställda knappen för att spara den färgen och gå vidare till nästa steg. På ditt sista steg, istället för att korttrycka, bara långtryck för att avsluta redigeringen.

När du avslutar mönsterredigeringen spelas mönstret upp automatiskt.

Det är allt! Du har nu en RGB LED -styrenhet som kommer att ordna mönster som du kan programmera via knappsatsen. Du kan stanna här, eller om du vill bygga en mer formell version av detta projekt, fortsätt genom resten av stegen.

Steg 7: Bättre hårdvara: RGB LED -drivrutinsskydd och kapsling

Image
Image
Bättre hårdvara: RGB LED -drivrutinsskydd och kapsling
Bättre hårdvara: RGB LED -drivrutinsskydd och kapsling
Bättre hårdvara: RGB LED -drivrutinsskydd och kapsling
Bättre hårdvara: RGB LED -drivrutinsskydd och kapsling

När jag väl hade en fungerande prototyp, visste jag att jag inte kunde lämna en bar Arduino och proto board på mina barns skrivbord som en permanent lösning. Jag behövde ett hölje för projektet. Jag bestämde mig också för att jag skulle göra en bättre förarbräda, och jag tyckte att det var det perfekta tillfället att göra min egen sköld.

Jag städade upp mitt pappersschema genom att skriva in det i ExpressSCH, ett gratisverktyg som erbjuds av ExpressPCB, en korttillverkare som erbjuder billiga korta körningar av små PC -kort. Jag har använt ExpressPCB i över ett decennium på projekt, men använder oavsett vilka verktyg och tillverkare du föredrar.

Jag lade till ett par små funktioner i grundschemat så att det skulle fungera bra som en sköld för det här projektet. Jag lade till kabeldynor för att ansluta Trellis, ett strömuttag, en pilotlampa och en kontakt för LED -remsan. Jag har också lagt till en plats för en kondensator över strömförsörjningen. Den sista kretsen visas här.

Jag bestämde att kraften för projektet skulle komma från skölden. 12V som levereras till skärmen driver både LED -remsan och Arduino. Ström till Arduino tillhandahålls genom att ansluta matningsingången till Arduinos VIN-stift, som är dubbelriktad (du kan leverera ström till Arduino på denna stift, eller om du ansluter ström till Arduino någon annanstans, ger det dig den medföljande ström på denna stift). Skyddsdiod D1 förhindrar att all ström som är ansluten direkt till Arduino (t.ex. USB) försöker driva lysdioderna.

Varför inte använda Arduinos strömuttag och bara ansluta 12V där? Medan jag kunde ha levererat 12V till Arduinos strömuttag och använt VIN -stiftet för att ta tag i den kraften för skölden, var jag orolig för att Arduinos D1 -diod och spår inte skulle vara upp till de höga strömmarna som är möjliga för att driva LED -lampan remsor. Så jag bestämde mig för att min skärm skulle ta över strömförsörjning och leverera ström till Arduino istället. Jag behövde också 5V för Trellis, men Arduinos inbyggda effektreglering levererar 5V på flera stift, så jag använde en av dem för Spalje. Det räddade mig att sätta en regulatorkrets på skölden.

Jag lade sedan ut kretskortet. Jag använde några resurser jag hittade för att få de exakta måtten för placering av stiften för att möta rubrikerna på Arduino Uno. Lite flit och det matchade på första försöket. Det finns inte mycket till själva sköldkretsen, så jag hade gott om plats. Jag lade upp stora spår för LED-lasterna, så det skulle finnas gott om strömförande kapacitet för mina behov. Jag ställde ut MOSFET där de kunde monteras platta, med eller utan kylflänsar. Hittills har jag inte behövt kylflänsar för antalet lysdioder jag har använt, men utrymmet finns där om det behövs.

Jag lade också till hål som matchade monteringshålen på spaljén, så att jag kunde använda avstånd för att montera spaljén på min sköld. Med skölden ansluten till Arduino och Trellis upphängd på avstånd över skölden, ska allt vara fint och fast.

Jag skrev sedan ut brädans layout och limmade den på en bit skumkärna och satte in mina delar för att se till att allt passade. Allt bra, så jag skickade ordern.

Jag började sedan arbeta med ett hölje. Med Fusion 360 konstruerade jag ett enkelt hölje för att innehålla de tre brädorna (Arduino Uno, shield och Trellis). Hål i höljet möjliggör anslutning till Arduino USB -port, och naturligtvis tillgång till LED -stripen ansluta och skydda strömuttaget. Arduino -uttaget täcks av höljet för att säkerställa att det inte används. Efter ett par prototyper för testpassning fick jag äntligen en design som jag var nöjd med. Jag har lagt upp STL -filerna för höljet till Thingiverse.

I framtiden ska jag göra en version av kortet som en Nano kan anslutas direkt till. Detta skulle göra projektet ännu mer kompakt. Fram till dess kan du också använda en Nano till Uno -skärmadapter så här.

Om du ska göra skölden är det här du behöver utöver de delar som nämns i steg 1:

  • RGB LED Driver Shield PC -kort (från ExpressPCB eller andra; du kan ladda ner filerna från min Github -repo för projektet);
  • 1N4002 -diod;
  • 100uF 25V radiell elektrolytkondensator (använd 220uF eller 470uF vid stor LED -belastning);
  • Strömuttag, PJ202-AH (5A-klassad modell).

Följande delar är valfria:

  • 3 mm LED - valfri färg, för pilotlampa (kan utelämnas)
  • 1500 ohm motstånd - behövs bara om du använder LED -pilotlampa

Rekommenderad: