Die Bezeichnung RGB (Rot/Grün/Blau) kennst Du bereits vom Webdesign: Farben werden dort hexadezimal als RGB-Farbcode kodiert:
Z.B. ist #ffffff der Farbcode für weiß, während #000000 der Farbcode für schwarz ist. Ziffer 1&2 stehen dabei für den Rot-Anteil, Ziffer 3&4 für den Grün-Anteil und Ziffer 5&6 für den Blau-Anteil. So ist z.B. #ff0000 die Farbe rot. Da hier mit Licht gemischt wird gilt: Je höher der Farbanteil desto heller!


Die RGB-LED vereint 3 LEDs in einem Gehäuse und kann damit soviel wie ein Pixel auf dem Bildschirm: nahezu jede beliebige Farbe zusammenmischen!
Die LED selber hat 4 Anschlüsse: Eine gemeinsame Anode (-), die man am längsten Beinchen erkennt. Die anderen Anschlüsse sind für Rot, Grün und Blau (werden mit + angeschaltet).
LED-Anschlüsse

R, Gnd, G, B
(von links nach rechts)
Die Schaltung

Wir benötigen hierfür 3 separate Widerstände!
Die Pins

Es werden die Anschlüsse 3, 5 und 6 verwendet.
Der Code
Der folgende Code lässt die drei LEDs zunächst nacheinander aufleuchten.
//Pins
int rot = 5;
int gruen=6;
int blau = 3;
//Helligkeitswerte zwischen 0 und 255 (zum Testen genügt 15!)
int helligkeitR=15;
int helligkeitG=15;
int helligkeitB=15;
int dunkel = 0;
void setup(){
pinMode(blau, OUTPUT);
pinMode(gruen, OUTPUT);
pinMode(rot, OUTPUT);
}
void loop(){
analogWrite(rot, helligkeitR);
delay(500);
analogWrite(rot, dunkel);
analogWrite(gruen, helligkeitG);
delay(500);
analogWrite(gruen, dunkel);
analogWrite(blau, helligkeitB);
delay(500);
analogWrite(blau, dunkel);
}
[/column]
[/row]
Als nächstes wollen wir über die USB-Schnittstelle Farbcodes empfangen, welche die LED dann darstellen soll. Hilfreich ist dabei die Funktion serial.read() bzw. serial.readString().
Diese werden genau im Know-How Modul über die Serielle Schnittstelle behandelt.
Auslesen des Strings
Nun müssen die einzelnen Stellen der Zeichenkette ausgelesen werden.
Haben wir beispielsweise den Farbcode #A1B2C3 empfangen, so können wir mit der Methode substring() die einzelnen Teile des Strings in einzelne Variablen packen.
Beispiel:
String rot=empfangenerString.substring(1, 3);
…(TODO: Konvertieren der Farbcodes und Nutzung des Dimmens mit Hilfe der Pulsweiten-Modulation)
Pulsweitenmodulation (wie man die LED dimmt)
Die verwendeten Anschlüsse beherrschen das sogenannte Pulsweitenmodulationsverfahren: Durch schnelles An- und Ausschalten der eines solchen Anschlusses wird die LED quasi gedimmt!
(TODO: Konvertieren der Farbcodes und Nutzung des Dimmens mit Hilfe der Pulsweiten-Modulation)