Hallo,
ich habe einen TLC5940 an mein Arduino Board angeschlossen und die ersten Funktionstests
laufen auch erfolgreich.
Jetzt versuche ich 5x RGB Leds sinnvoll anzusteuern. Dazu verwende ich die
Tlc5940.hJedoch finde ich nicht den richtigen Einstieg. Einfache Durchläufe habe ich bis jetzt so gelöst:
int rPIN [] = {1,4,7,10,13} // rote pins
int gPIN [] = {2,5,8,11,14} // gruene pins
int bPIN [] = {3,6,9,12,15} // blaue pins
tlc.clear();
for (int i=0;i<=4;i++)
{
tlc.set(rPIN[i],4095);
delay(100);
tlc.update()
}
... usw
Um jedoch Farben zu mischen oder Farbübergänge zu realisieren müsste man ja bei meiner Programmierung
viel Aufwand betreiben.
Ich stelle mir das eigentlich so vor, dass ich eigentlich jede RGB -LED einzeln anspreche und ihr einen RGB wert und die Helligkeit übergebe.
Quasi :
rgb1.set(255,125,80,2000); // rot=255,gruen=125,blau=80,pwm=2000
rgb2.set(180,80,255,4095); // rot=180,gruen=80,blau=255,pwm=4095
usw....
Also im Grunde möchte ich später Regenbogen Farbverläufe oder andere Farbwechsel incl. Fade Funktion Programmieren. Nur weiß ich nicht wie ich das mit dem TLC5940 Ressourcen schonend hin bekomme.
Vielleicht habt ihr ja ein paar Denkanstöße?!
Also eine Funktion mit vier Parametern wie rgb1.set(255,125,80,2000) macht erst mal keinen Sinn, da in den RGB Werten die Helligkeit ja schon enthalten ist.
Aber Du könntest Dir so eine Funktion basteln:
void setRGB(int led, int r, int g, int b)
{
Tlc.set(rPIN[led], map(r, 0, 255, 0, 4095));
Tlc.set(gPIN[led], map(g, 0, 255, 0, 4095));
Tlc.set(bPIN[led], map(b, 0, 255, 0, 4095));
}
und dann so nutzen
void loop()
{
setRGB(0, 255, 0, 0);
setRGB(1, 12, 64, 255);
setRGB(2, 128, 128, 32);
Tlc.update();
}