CPU-fläkten hacka - RGB lysdioder - Arduino & TLC5940 (6 / 7 steg)
Steg 6: Skrift mjukvaran
Jag är ingalunda programvara benägen. Använda de grundläggande TLC5940 exempel kan resultera i några mycket häftiga effekter. Jag har tagit några av dessa exempel och modifierade dem för särskild användning. Chef över till följande länk för att ladda ner koden källbiblioteket för din Arduino IDE.
http://code.Google.com/p/tlc5940arduino/
Testa först genom att läsa ett exempel. Fades exemplet har en väldigt cool effekt, detta var min favorit till att börja med. Jag betona att du testa innan du installerar eftersom jag upplever några LED misslyckanden under hela processen, och vi vill inte desoldering komponenter och omkoppling kretsar medan projektet är inne i vår dator (om vi inte måste).
Om färgade lampor, på power-up - är du iväg till en bra start. Jag har förutsatt en liten handfull exempel som visar hur lätt det är att anpassa TLC5940 källa kodexempel och ändra dem till dina egna behov. I ett exempel, jag gör lysdioder ren blå att rymma andra accent belysning i mitt rum - när jag har dem satt till blå-min dator kommer att matcha accentuerande belysning av mitt rum.
Ett annat exempel, jag fade lysdioderna från en färg till nästa, och loop här koden så din dator för att bläddra genom olika färger. Det finns många sätt att uppnå någon effekt du söker för ditt sinne och kreativitet är gränsen. Min olämplig förmåga att utforma program kanske inte imponerande, och att jag hoppas några av er där ute kommer att ta detta projekt och dela din egen programvara effekter! Jag är nyfiken att se vad andra kan komma med.
Fördelning:
Variabler:
mils - Fade Rate
STEG - gråskala stegstorlek
RC - referens färg
r - röd variabel
g - grön variabel
b - blå variabel
För att helt enkelt testa och utveckla nya färgen bleknar - jag har definierat två kontroll variabler i setup-delen på vår kod, mils och steg.
Mils styr fördröjningstiden i den för loop - genom att öka värdet av mils, vi öka tiden mellan loop iterationer och minska där vi tona våra lysdioder. Genom att minska värdet av mils, vi minska fördröjningen mellan loop iterationer och öka graden där vi tona våra lysdioder.
STEG styr gråskalan stegstorlek för varje slinga iteration. Genom att öka värdet av steg, öka vi steg av vår gråskalan kod, vilket gör våra lysdioder ta större steg steg och snabbare fädning. Genom att minska värdet av steg, vi minska våra steg storleken på vår gråskalan kod, vilket gör våra lysdioder ta mindre steg och blekna långsammare.
RC är vår referens färg. När du kombinerar LED kombinationer, kommer att vår referens färg vara våra ljusaste färg. Vi kan sedan göra våra sekundär färg mindre än RC, via en matematisk funktion (eller större) - Detta kommer att tillåta oss att upprätta olika nyanser med större lätthet och kontroll.
R, B och B är slutligen den variabel som innehåller gråskalan koden för varje uppsättning av röd, grön och blå lysdioder. Värdet 0 i variabeln kommer att motsvara den LED att vara utanför, medan ett värde på 4095 blir högsta ljusnivå för att LED.
Struktur :
För struktur använder jag en enkel for-loop. Vad loopen gör först initieras våra tre variabel: r, g och b till en off stat för 0. Sedan initiera vi våra RC referens färg variabel till en 0, också utanför. Slingan kommer att sedan säga, för varje iteration (varje instans slingan utför 1 cykel), det kommer att titta på RC. När RC är lika med ett värde mellan 0 och 4095, vi lägger till värdet av steg till våra RC variabel. Om steg innehåller värdet 1, kommer våra RC steg värdet 1 gråskalan koden per loopen upprepas. Vi skriver sedan gråskalan värdet i variabeln RC till våra R, G eller B variabler som ska skrivas till våra lysdioder. I detta fall, använder jag röd som vårt exempel. Jag gör, via math funktion, r = RC vilket gör våra r variabel nu hålla det faktiska ljusa nivå värdet, när det gäller gråskalan kod, uppdateras till våra TLC kanaler och utgång till vår lysdioder.
Vi uppdaterar TLC, att göra utgångarna följa våra variabel vi konfigurerat - och sätta in en liten fördröjning. Slingan kommer sedan gå tillbaka till början och börja processen över tills r når ett värde på 4095 (högsta ljusnivå).
Vi sedan vända här koden med några små manipulation - och kör koden bakåt - ljusreglering våra röda lysdioder backa ner till. Cykla sedan upprepas.
#include "Tlc5940.h"
void setup()
{
TLC.init();
#define mils 10
#define steg 1
#define röd
}
void loop()
{
Det finns 4095 steg från 0 till max på 4095.
Referens färg definieras som RC
Den färg som du vill ska vara den dominerande färgen kommer att vara referens färg
Sekundära dim färger kombineras ska refereras till RC
int r = 0;
int g = 0;
int b = 0;
för (int RC = 0; RC < 4095; RC = RC + STEG) {
r = RC;
RÖDA lysdioder
TLC.set (0, r);
TLC.set (3, r);
TLC.set (6, r);
TLC.set (9, r);
TLC.set (12, r);
TLC.set (15, r);
TLC.set (18, r);
TLC.set (21, r);
Gröna Lysdioderna
TLC.set (1 g);
TLC.set (4 g);
TLC.set (7 g);
TLC.set (10 g);
TLC.Set 13, g.
TLC.Set 16, g.
TLC.Set 19, g.
TLC.set (22 g);
Blå lysdioder
TLC.set (2, b).
TLC.Set 5, b.
TLC.set (8, b).
TLC.Set 11, b.
TLC.Set 14, b.
TLC.Set 17, b.
TLC.set 20, b.
TLC.Set 23, b.
TLC.Update();
Delay(mils);
}
för (int RC = 4095; RC > 0; RC = RC-STEG) {
r = RC;
RÖDA lysdioder
TLC.set (0, r);
TLC.set (3, r);
TLC.set (6, r);
TLC.set (9, r);
TLC.set (12, r);
TLC.set (15, r);
TLC.set (18, r);
TLC.set (21, r);
Gröna Lysdioderna
TLC.set (1 g);
TLC.set (4 g);
TLC.set (7 g);
TLC.set (10 g);
TLC.Set 13, g.
TLC.Set 16, g.
TLC.Set 19, g.
TLC.set (22 g);
Blå lysdioder
TLC.set (2, b).
TLC.Set 5, b.
TLC.set (8, b).
TLC.Set 11, b.
TLC.Set 14, b.
TLC.Set 17, b.
TLC.set 20, b.
TLC.Set 23, b.
TLC.Update();
Delay(mils);
}
}
Om allt har fungerat, och du förstår nu maskinvara och programvara bakom designen - är det nu dags att installera fläktar i datorn och börja njuta av fördelarna. Installationen är enkel, eftersom du skulle installera med alla andra PC fan - först nu har vi en krets för att stoppa undan.