
Die RGB-LED
In diesem Tutorial arbeiten wir mit der RGB-LED. Hinter RGB verstecken sich die Begriffe für die Farben Rot, Grün und Blau. Drei verschiedene LED-Chips werden in einem Gehäuse kombiniert.
Aus diesem Grund haben RGB-LEDs vier Anschlüsse: Einen gemeinsamen Minus-Pol (GND = Ground) und jeweils einen für die drei Farben (Red, Green, Blue). Durch die örtliche Nähe der Farb-Chips erhält man durch die additive Farbmischung unterschiedliche Farben. Je nach Ansteuerung der einzelnen Chips erhält man reines Rot, Grün, Blau und entsprechende Mischfarben. Bei richtigem Mischungsverhältnis entsteht (theoretisch) weißes Licht. Auch sind stufenlose Farbübergänge bei gleichzeitiger Variation der Lichtintensität möglich.
Zur besseren Lichtmischung werden zusätzliche optische Komponenten wie ein Diffusor in das LED-Gehäuse eingesetzt. Fehlt der Diffusor, kann man die einzelnen Farben erkennen. Bisher haben wir nur eine LEDs angesteuert. Wir werden den Sketch so umschreiben, dass auch die anderen LED leuchten. Im ersten Moment mag die RGB-LED kompliziert erscheinen. In der Umsetzung ist sie jedoch sehr einfach Hand zu haben.
Der Aufbau
Die LEDs werden nach einander ein- und ausgeschaltet.
int roteLEDPin = 10;
int grueneLEDPin = 11;
int blaueLEDPin = 12;
void setup()
{
pinMode(roteLEDPin, OUTPUT);
pinMode(grueneLEDPin, OUTPUT);
pinMode(blaueLEDPin, OUTPUT);
}
void loop()
{
digitalWrite(roteLEDPin, HIGH); //leuchtet nur ROT
digitalWrite(grueneLEDPin, LOW);
digitalWrite(blaueLEDPin, LOW);
delay(500);
digitalWrite(roteLEDPin, LOW);
digitalWrite(grueneLEDPin, HIGH); //leuchtet nur GRÜN
digitalWrite(blaueLEDPin, LOW);
delay(500);
digitalWrite(roteLEDPin, LOW);
digitalWrite(grueneLEDPin, LOW);
digitalWrite(blaueLEDPin, HIGH); //leuchtet nur BLAU
delay(500);
}
Im Detail
Der Aufbau des Sketches gleicht sich dem einfachen Blink-Sketch. Nur das wir es mit drei LEDs gleichzeitig zu tun haben.
Zunächst deklarieren wir alle drei Variablen für die drei Farben und weisen ihnen eine Pinnummer zu. Wir können natürlich jeden digitalen Pin unserer Wahl auswählen. In diesem Beispiel sind es folgende: 10,11 und 12.
introteLEDPin =10;
intgrueneLEDPin =11;
intblaueLEDPin =12;
Alle drei LEDs werden in void setup() als OUTPUT konfiguriert.
void setup()
{
pinMode(roteLEDPin,OUTPUT);
pinMode(grueneLEDPin,OUTPUT);
pinMode(blaueLEDPin,OUTPUT);
}
Im void loop()-Bereich: Der Code für die Ansteuerung der LEDs beinhaltet drei Blöcke, die durch die delay()-Funktionen getrennt werden. Mit der Funktion digitalWrite() schalten wir mit HIGH immer nur eines der LEDs ein. In diesem Fall nur die rote. Die anderen bleiben ausgeschaltet > LOW.
digitalWrite(roteLEDPin,HIGH);//einschalten
digitalWrite(grueneLEDPin,LOW);
digitalWrite(blaueLEDPin,LOW);
Nach einer Pause von 500ms delay(500) wird die rote LED ausgeschaltet und dafür die grüne eingeschaltet.
digitalWrite(roteLEDPin,LOW);
digitalWrite(grueneLEDPin,HIGH);//einschalten
digitalWrite(blaueLEDPin,LOW);
Jetzt kommt wieder eine Pause von 500ms. Und dann ... das Gleiche mit der blauen LED: Die grüne LED wird ausgeschaltet und die blaue ein.
digitalWrite(roteLEDPin,LOW);
digitalWrite(grueneLEDPin,LOW);
digitalWrite(blaueLEDPin,HIGH);//einschalten
In der letzten Zeile angekommen, springt das Programm wieder an den Anfang und das Spiel beginnt von vorne.
Aufgaben
1. Mischfarben – Programmiere folgenden Pseudo-Code für void loop():
Experimentiere mit der RGB-LED, in dem du alle drei LEDs unterschiedlich kombinierst und damit Mischfarben erzeugst.
1. rote und grüne LED einschalten, blau ist ausgeschaltet
2. Pause von 500 Millisekunden
3. grüne und blaue LED einschalten, rot ist ausgeschaltet
4. Pause von 500 Millisekunden
5. rote und blaue LED einschalten, rot ist ausgeschaltet
6. Pause von 500 Millisekunden
7. alle LEDs einschalten: rot, grün und blau
8. Pause von 500 Millisekunden
Du kannst dich an der unteren Abbildung orientieren, um Farben zu mischen. Additive Farbmischung
2. Delay Variable
Verändere die delay()-Funktion so um, dass du sie mit einer Variablen besetzt.