Leuchtdiode-dreifarbig RGB
Aussehen
oberes Bild: RGB Quelle: www.ebay.de
unteres Bild: RGB von oben und unten Quelle:www.arduino.alhin.de
Eine RGB(rot,grün,blau) ist eine Lichtquelle, die 3 LED's zusammenfasst und somit es ermöglicht Farben zu mischen.
Funktionsweise und Anschlussmöglichkeit
Das Gerät besteht aus einem Groundanschluss und 3 Anschlüsse mit bereits eingebauten Vorwiderständen. Durch die einzelnen Anschlüsse(rot,gruen,blau) kann man nun steuern welche Farbe die RGB ausgeben soll. Hierfür kann man beispielsweise die rote -und blaue Led anschalten. Dabei erhält man violett. Somit lassen sich sich alle Farben(abgesehen von Farben die unterschiedliche starke Grundfarben benötigen) herstellen.
Einbindung in (Arduino)Programm
Aufbau des Schaltkreises mit RGB
Jeder einzelne Stecker der RGB (3 Stecker unten) werden mit einem kabel an einen beliebigen Anschluss angeschlossen (Bspw. Pin13, Pin12, Pin11). Außerdem muss natürlich eine Verbindung mit einem Minus-und Pluspol gewährleistet werden (Bspw. 5V, Ground) Dafür muss auch eine Verbindung zum Groundstecker vorhanden sein. Letztendlich ist auch zu beachten, dass Vorwiderstände manchmal eingebaut werden müssen. Im Fall dieser RGB sind Vorwiderstände allerdings schon bei jeder einzelnen LED eingebaut.
Einbindung in Programm
Letztendlich ist auch die Einbindung ins Programm bei der RGB genau wie bei der Led. Deswegen werden je nach Belieben verschiedene einzelne Led's der RGB aktiviert und somit gegebenfalls vermischt.
In diesem Beispiel werden mit einer RGB die Grundfarben durchgeschaltet und abschließend ein violettes "Signal" gegeben.
int rot = 13;
int blau = 12;
int gruen =11;
int ledState = 0;
int previousMillis = 0;
int Millis = 0;
void setup() {
pinMode(rot, OUTPUT);
pinMode(blau, OUTPUT);
pinMode(gruen, OUTPUT);
}
void loop() {
if (millis() - previousMillis < 5000){
digitalWrite(rot, HIGH)
}
else{
if (millis() - previousMillis < 6000){
digitalWrite(blau, HIGH)
digitalWrite(rot, LOW)
}
else{
if (millis() - previousMillis < 11000){
digitalWrite(blau, LOW)
digitalWrite(gruen, HIGH)
}
else{
if (millis() - previousMillis < 13000){
digitalWrite(gruen,LOW)
}
else{
digitalWrite(rot, HIGH)
digitalWrite(blau, HIGH)
previousMillis = Millis
}
}
}
}
}