RainBoard - RGB LED Rainbow Fader (2 / 19 steg)
Steg 2: teori
Innan vi dyker i huvudet först, trodde jag jag skulle förklara lite om hur det här fungerar. För dig som vill komma igång, kan du hoppa över detta avsnitt och komma tillbaka senare om du vill lära dig teorin.För detta projekt ville jag göra en 15 RGB LED strip rainbow fader. Detta kommer så småningom monteras i en tavelram och monteras på väggen som ett humör ljus (i en senare Instructable). För att ändra färg på varje remsa, måste vi snabbt öka/minska ljusstyrkan i varje LED RGB-kanaler. Det finns många sätt att göra detta. Det mest effektiva sättet att göra detta är genom puls-bredd modulering (PWM). Detta kanske låter som ett stort ord, men det är faktiskt ganska ett enkelt begrepp att förstå. Som med de flesta lysdioder, dessa RGB LED remsor normalt har två färgalternativ per kanal: ON eller OFF (ungefär som att övervaka på äpple jag tillbaka i grundskolan). Men vad händer om vi beslutat att snabbt stänga LED sedan igen, många gånger per sekund? Visar sig att det mänskliga ögat ser fortfarande LED, men vi ser inte det slå på eller av. Det ser helt enkelt mindre ljus. Detta är det grundläggande konceptet för PWM. Genom att vrida den på och stänga igen och i mycket snabb takt, bli inte det mänskliga ögat klokare för att avgöra om lampan är på eller av! Det ser helt enkelt ut som om det bleknar mellan ljusstyrka.
Om vi gjorde den första lysdioden rött kanaliserar suddas ut är det gröna kanalen, det skulle se ut som det var blekning från rött, orange, gul, grön. Om vi gjorde detta med sin blå kanal, snart har vi alla färger i regnbågen, men vi skulle bara ha den blekna varje färg av regnbågen på en RGB LED Strip. Nu vad om vi gjorde detta i synkron med alla RGB LED strips? Det är där SKIFT register kommer in i bilden.
När all digital kommunikation arbetar med 1 och 0's (hög och låg eller ON och OFF), vi behöver ett sätt att berätta var och en av kablarna till vända sig på eller utanför, och ganska snabbt. Lyckligtvis utformades skiftregister för detta ändamål. I grund och botten vi berättar Arduino en sträng 1 och 0's och det matar dem i skift register. När ett skiftregister blir full, passerar det de första 8 siffror som matades den vidare till nästa registret, och så vidare tills alla 6 register får veta vad man ska göra. Se det som en rad med säten i en biograf. När någon kommer in första raden, går de till sista plats tills alla är fulla. När nya människor vill ha en plats, den första person som angav nu står upp och lämnar (till nästa skiftregister). Alla flyttar sedan över en stol och den nya personen kan nu sitta ner. Detta liknar hur en förskjutning registrera verk. Vi kan prata med alla RGB LED strips på detta sätt.
Men sedan hur gör vi detta arbete av endast 3 digitala pins från Arduino? Gå tillbaka till rad av säten i en film teater jämförelse, vet vi att vi bara behöver en kabel att skicka 1 och 0 till RGB LED strips (raden av människor). Men de SKIFT register behöver två mer stift, en för klockan och en för spärr stiftet. Klockan stiften är ganska självklar. Det är i grunden ett sätt att berätta skiftregister hur snabbt saker händer, mycket som 16MHz klocka berättar Arduino är det egen timing. Spärr stiftet spelar en avgörande roll med Skift register. Det säger skiftregister när vi är redo att skriva till den, och när vi är klara skriva till den. Utan sådan en PIN-kod, skulle data ständigt flyga ut i slutet av raderna, ungefär som våra dålig film beskyddare om någon beslutat att steam-plogen genom mittgången. Detta skulle vara precis lika illa för vår film beskyddare som det skulle vara för elektronik. Detta stift håller data i registret tills vi är redo att skriva till den.
Men hur är de ULN2803? Vad sjutton är dessa saker för? Tja, tyvärr RGB lysdioder körs på 12VDC makt och SKIFT registret fungerar på 5VDC. Undvik dessa begränsningar, äter vi 12VDC till Arduino och access det genom dess 'Vin' pin power RGB lysdioder och använda SKIFT register till kontroll ULN2803 (som är som 8 NPN Darlington transistorer inklämda i en härlig chip av awesomeness!). Fina med dessa är att de har en gemensam emitter, vilket innebär om vi koppla i en RGB-LED som har en gemensam anod och koppla anod till + 12VDC och varje katod till samlare av ULN2803, sedan när vi slår på dem med transistorerna stänger kretsen och grunder de katoder, att göra LED vända på. (* Puh * det var en lång mening.)
Tillräckligt chit chat, vi har en RainBoard att göra!