RGB-LED ansteuern

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)