En 15-LED RGB klocka med Arduino kärna (1 / 5 steg)

Steg 1: Hårdvara överväganden 1: driva lysdioder



Normala Arduino har endast 6 PWM utgångar, vilket innebär att det kan driva 2 RGB lysdioder av sig själv. Du behöver några extra hårdvara att kontrollera 15 av dem. I mitt projekt använda jag en egen styrelse som är i huvudsak en Arduino Mini variant med 3 LED drivrutiner installerade; har du till komma med din egen lösning. I detta avsnitt ska jag försöka förklara de tillgängliga alternativen.

Det finns fyra sätt att köra en massa lysdioder av en Arduino: en särskild LED driver; ett skiftregister; en multiplexing/charlieplexing förare; eller lysdioder med en chip ombord. Jag har lite eller ingen i första hand erfarenhet med de två sistnämnda alternativ, så jag ska vara kort om dem.

Multiplexering drivrutiner, som den kända i Arduino är cirklar MAX7219, avsedda för användning i LED visas och 8 x 8 LED matriser. De kan köra upp till 64 enskilda lysdioder, så de verkar vara ganska bra för detta projekt, eftersom det kräver 45 anslutningar. Dessa drivrutiner behöver dock inte någon PWM alternativ, så att du inte kommer att kunna ställa in enskilda ljusstyrkan i varje LED och blir fast med 7 grundfärgerna RGB lysdioder med några ytterligare alternativ som slät animationer, fade-outs och liknande (för att vara exakt, det är ett projekt att lägga rudimentär 4-bitars PWM förmåga till MAX7219, du kan se sina begränsningar på video där). Det blir också ganska svårt att koppla dem, som är avsedda för olika användningsområden. Slutligen, lysdioder kommer att blinka på grund av multiplexing-de flesta människor märker inte detta, men jag gillar inte idén. I alla rekommenderas detta inte.

Lysdioder med en controller chip är antingen WS2812B (marknadsförs i USA som NeoPixels) eller APA102 (aka DotStar). Först är mer eller mindre allmänt känt, att vara på marknaden för en tid; Jag övervägt aldrig ens denna sak på grund av dess absolut infernal kontrollmetod med exakt timing krav. APA102 framkom ganska nyligen medan mitt projekt pågick, och här verkar mycket bättre än sin föregångare, som det kan vara kontrollerad med SPI eller ens lite smällar. I staterna APA102 även har en mycket lämplig prislapp, säljer på $4,5 för 10 lysdioder. Tyvärr är jag inte där, så för mig här inte är fortfarande ett alternativ. Några anteckningar ska dock. Första APA102 är för närvarande endast tillgänglig i SMD form (5050): ingen thru-håls lysdioder för dig. Andra, även med WS2812B att vara på marknaden för en tid, det kunde inte blivit en industri standard. Personligen har jag allvarliga tvivel när det gäller dessa lysdioder livstid på grund av uppvärmning. Tredje, Observera att även i USA kan uppstå problem när du söker en ersättare för utbrända lampan. Som sagt, jag tycker fortfarande att APA102 lysdioder för att vara en intressant utveckling som är värt att överväga, om även för experiment bara.

Och nu för allvarliga, industri-godkända alternativ.

1. LED driver

Dessa marker är ganska vanliga, eftersom de används i enorm reklam LED-skärmar. Eftersom de är utformade att driva lysdioder, är det klart bästa alternativet. Dessa drivrutiner är tänkt att vara seriekopplas, så kan du ansluta dem i kedjan att lysa upp så många lysdioder som du vill använda samma antal Arduino utgångar. De är aktuella diskbänken enheter, vilket innebär att endast gemensam anod RGB lysdioder kan användas; men det innebär också att du inte behöver motstånd för varje LED ben, bara en per chip (eller ingen alls med vissa drivrutiner).

Den mest kända bland Arduino entusiaster LED driver är Texas Instruments TLC5940 16-kanal 12-bitars nuvarande diskhon drivrutin. Det blev populärt eftersom det är en av mycket få bakbord-vänlig LED drivrutiner, tillgängliga i DIP paket. Det finns en mycket grundlig och mycket testade bibliotek tillgängliga för detta chip. TLC5940 behöver bara 5 data linjer från controller plus spänning och marken.

Jag använder obskyra LED drivers kallas DM633 och DM634 från vissa taiwanesiska tillverkaren. Jag snubblat på dem medan de väntar på paketet med TLCs som aldrig kom fram och jag är ganska glad att på min lycka, som dessa killar är 3 gånger billigare och faktiskt bättre: de har egna gratis-kör PWM, så behöver bara tre data linjer från registeransvarige. De har också globala ljusstyrka (som i själva verket är ett inre motstånd – så det är möjligt att dike den yttre en, även om jag inte rekommendera det) och 634 har 16-bitars gråskala djup. De är dock tillgängliga i SMD paket bara, så du måste löda (även om SSOP-DIP-kontakten på en skärbräda). Om du lyckats få dessa marker och har problem att göra dem arbeta gärna använda min skiss med grundläggande funktionalitet här (Observera att detta är i arbete och inte ett bibliotek ändå, så bara inkludera kod i din skiss).

Det bästa och snabbaste sättet att styra LED drivers är SPI-gränssnittet. Dessa marker är dock inte utformade för SPI, så de kan programmeras med hjälp av enkel bit-banka teknik om du behöver SPI utgångar (stift 10-13 på Arduino) för något annat. Se TLC5940 biblioteket för detaljer.

Som en bonus, kan LED drivrutiner användas också att driva servon och motorer. De är ju bara PWM utdata multiplikatorer.

2: SKIFT register

Skift register finns i en mängd olika paket nästan överallt, de är exceptionellt billiga och de lätt kan användas som LED drivers tack vare utmärkt shiftPWM bibliotek. De kan också vara seriekopplas. Vilket gör dem det näst bästa möjliga valet, särskilt för bakbord prototyping (förutsatt att du hittar ett ställe att lägga 6 av dem).

De vanligaste och billigaste SKIFT registret är den goda gamla 74HC595. Du kan använda både gemensam anod och gemensam katod RGB lysdioder med det, men det har en betydande nackdel: du måste lägga ett motstånd på varje data ben i varje LED, och det är 45 motstånd i alla för detta projekt (ganska genomförbart, i själva verket).

Alternativet är ett nuvarande diskhon skiftregister, som är i huvudsak LED driver utan någon inbyggd PWM. Här behöver du endast en resistor per skift register, men också kommer att vara begränsad till att använda gemensam anod endast lysdioder. Dessa marker är också dyrare.

Som SKIFT register har inte någon inbyggd PWM, alla moduleringen kommer att göras av ShiftPWM bibliotek i mikrokontroller, och dessa beräkningar äter resurser. För detta projekt inte ens denna resurs sjunka märkbart om du inte prova att göra några allvarliga visualiseringar med antialiasing och sådant. Det finns en resurs kalkylator på ShiftPWM sida som ger dig en uppfattning om hur lång tid den kommer att vara upptagen PWMing. Igen, det rekommenderas att använda SPI för att kommunicera med Skift register, eftersom detta är snabbare; bit-banka finns också.

För att sammanfatta:

-LED drivers är bäst men inte det billigaste alternativet. Om du är intresserad av att göra LED visualiseringar med Arduino, ska du verkligen gå för det: så småningom kommer ni att bekanta sig med dessa marker, så varför inte börja nu? Du behöver tre 16-kanals LED förare plus tre motstånd för detta projekt.

-Skift register, nämligen 74HC595, presentera det billigaste alternativet, med en nackdel att behöva en hel del motstånd. Fortfarande, som SKIFT register finns i någon Arduino workshop, detta alternativ kan vara idealisk för människor som vandrar in LED driver fältet endast sporadiskt och inte vill investera i dedikerad hårdvara. Detta är också ett bra (men inte den enda) alternativ om du tänker bygga allt på en skärbräda. För detta projekt behöver du sex 8-kanals SKIFT register plus 45 motstånd.

-LEDs med chip ombord, nämligen APA102, är värt att överväga om du har tillgång till dem och är nöjda med deras endast SMD-form. Observera att dessa är nya och unika, så du inte kommer att kunna hitta ersättare om de får avbrytas av någon anledning. Du behöver bara 15 sådana lampor här.

-Multiplexering drivrutiner som MAX7219 skall anses endast om du redan har dem och vill sätta dem till någon meningsfull användning, eftersom de inte ger full PWM förmåga. Köp inte dem för detta projekt – en äkta MAX7219 kostar lika mycket som tre TLC5940s. En MAX7219 kan köra 15 RGB lysdioder.

Se Steg
Relaterade Ämnen

LED ring klocka med Arduino

Titta på pchretien's Fibonacci klocka förra veckan, beslutat jag att dela mitt LED ring klocka projekt.Som ni kan se tiden representeras på två WS2812 LED ringar.I den yttre ringen finns 24 lysdioder, det visar timmar från 0 till 24. De olika färgern...

8 x 40 LED matris klocka med kalender med fjärrkontrollen

Idag ska jag visa hur man gör rullning och animerade LED matris klocka med kalender för arduino. Detta projekt har följande funktionerVad är nytt i Version 2.0Extra IR-fjärr baserade justera tid/datumSmidig animationMånga buggfixar i programvaraVersi...

LED Rubiks kub med Arduino

I detta instructable jag ska visa dig hur du kan bygga din egen LED Rubiks kub. Detta projekt var gjort för en inledande elektronik kurs på Pomona College. Grupper fick cirka två månader att slutföra ett projekt som de valt, det enda kravet är att pr...

USB-brons sätta en klocka på slående klocka (med Arduino)

irritera dina medarbetare: leda dem in i ber dig att stänga av din speciella PC-klocka!Denna lilla riggen infact gränssnitt via USB till din PC-klocka och genererar halv timmar dings på en riktig brons sätta en klocka på. Bra grejer i din office och...

Stor, auto dim, rum klocka (med arduino och WS2811)

Första Hej instructables.Detta är min första kontakt med:InstructablesArduinoenProgrammerbara lysdioderSå du inte trow stenar på mig för noobish misstag.Att hålla det i åtanke jag väntar att läsa dina kommentarer med riv intresse och jag är öppen för...

Kontrollera en RGB ledde med Arduino och bearbetning

detta instructable (min första inte mindre) visar hur man styr en RGB ledde med bearbetning och arduino.Den viktiga funktionen att vara färg markeras genom att klicka på en bild, RGB-värdet för den pixel du klickar på bearbetas och skickas till den a...

Hemmagjord klocka med Arduino

Idag kommer jag visa dig hur man gör en hemmagjord klocka med en Arduino!Steg 1: Material + inställningar för ArduinoMaterial--SMA420564 sju Segment display-Vid minst 12 Sunfounder startkablar-Arduino Uno-Bredboard-2 knappar-2 220 Ohm motstånd-Källan...

LED Christmas sweater med Arduino

Vi fick göra interaktiva objekt med Arduino för ett skolprojekt. Och eftersom det är alltid dags för jul-tröjor jag beslutat att göra en denna lilla prototypen.Det är en perfekt docka storlek tröja! Det är också super söt Juldekoration eller en rolig...

Återställer ditt circadian klocka "biologiska organ klocka" med Arduino

Inspiration till lägga rätt din biologiska kroppsklocka och förbättra din hälsa och sömn hygien med ArduinoEn dygnsrytm klocka är inte en klocka som vi tittar på att tala om tid. Det är snarare en tid keeper och en oscillator inom vår kropp organisme...

RGB LED Strip krets med Arduino

Detta Instructable omfattar montering av en krets kan PWM-ning (puls bredd modulerande) en 9-12v RGB LED strip och programmering en Arduino att cykla genom en rad olika färger. Jag kommer att diskutera hur man montera en transistor till en kylfläns &...

Hårddisk Clock (HDD klocka med Arduino Uno)

Detta är ett roligt projekt som kan göras enkelt och också billigt. I detta instructable vi kommer att förklara steg för steg hur man gör denna vackra POV klocka.Använda materialet:Arduino Uno,Tiny RTC modul,ULN 2003,IR diod och IR transistor (använd...

Ren binär LED väggklocka med Arduino

Min binära Väggklocka är inspirerad från många binära klockor jag hittade på InstructablesLänkar:Lilypad Arduino klocka:Binär klocka:Plus några andra binär klocka instructables.Men...Vad jag fann saknas i dem var omfattningen och storleken på display...

En nätverksansluten LED Strip Controller med Arduino och Android

jag är fascinerande från belysningen verkställer sedan barn och en gång hittade på Ebay en billigt multicolor LED strip har jag börjat titta hur kontroll det, letar efter en Ethernet aktiverat kontroll som gör remsorna en uppsättning nätverk objekt,...

Bass lyhörd RGB lysdioder med Arduino

Denna tutoiral visar dig hur du använder Arduino och styra en uppsättning av lysdioder med musik från datorn. Denna handledning kräver:-Arduino (jag använde en leonardo)-liten skärbräda med bygel ledningar (kit är det bästa)-rgb led strip (jag använd...

E-checkar klocka med Arduino Yun och hur returneras olästa e-postmeddelanden som ett heltal.

I denna video vi kommer att använda en Arduino Yun (eller leonardo med en wifi sköld) för att kontrollera din e-post konto (eller valda etikett) och returnera antalet olästa e-postmeddelanden som ett heltal som ska användas i ett annat projekt eller...

LED dör med Arduino

detta projekt är en dö som du kommer att göra med 7 lysdioder, 8 resistorer och en liten switch. När du konstruerar dö, du kommer att ansluta den till en Arduino hårdvara att ladda ner programmet och du kan använda matrisen genom att manipulera en li...

Kommer det att leda elektricitet? med Arduino

Åh nej! Ledningar som upprätthålla stationens syre nätaggregat har försvunnit. En rogue asteroid kraschade och skära rent igenom trådarna! Vi kunde förlora livet-stöd i pod 6 om du inte agerar snabbt. Rummet har du ligger nära skadan och är full av a...

8-LED Larson Scanner med Arduino

detta är ett enkelt sätt att göra en Larson Scanner med en Arduino, med extra förmåga att scanningen klassar med en potentiometer.Minsta reservdelslista:(1) Arduino Duemilanove (eller motsvarande / kompatibel)(8) LED av ditt val. Jag använde 5mm T1-3...

LED blinkar ljus med Arduino

måste du först installera Arduino på datorn och har startpaket.Steg 1: material Arduino UNOUSB-sladdWireResistor 300 ohmLED ljusSkärbrädaSteg 2: montering Plug USB till din datorFå skärbrädaSätta ljus under den röda linjenLägga en tråd under första p...