RGB LED mit Arduino zum Leuchten bringen

Hier ist ein kurzes Tutorial wie ihr eine RGB LED mit eurem Arduino in 6 Farben leuchten lasst.

Zutaten:
1x Arduino Board
1x RGB-LED (mit gemeinsamer Kathode)
3x 220 Ohm Widerstände
1x Breadboard

RGB-LED:
Diese RGB-LED hat 4 Beinchen. 3 Beine für Rot, Grün, Blau und 1 Kathode (-). Am Bild seht ihr die Belegung der 4 LED Beinchen. Vorsicht: Im Gegensatz zur normalen LED ist in diesem Fall das lange Bein die gemeinsame Kathode (-). Es gibt auch RGB-LEDs die eine gemeinsame Anode haben.

RGB-LED-Belegung




Aufbau:
Um die 3 Farben mit euren Arduino anzusteuern benötigt ihr 3 Digitale Pins, einen für jede Farbe, und den Ground (GND) Pin für die Kathode. Steckt die LED in das Breadboard. Zwischen jeder der 3 Farb-Anschlüsse und dem jeweiligen Digitalpin steckt ihr einen Widerstand. Danach verbindet ihr den Arduino Ground Pin  (GND) mit der Kathode (Langes Beinchen) und schon ist der Hardwareteil fertig.

Arduino-mit-RGB-LED


Arduino Programm:
In meinem ganz einfachen Arduino Programm lasse ich zuerst Rot dann Grün dann Blau aufleuchten. Die jeweiligen Farben werden auch als Text auf die Konsole ausgegeben. Nach dieser Sequenz werden die Farben noch wie folgt gemischt:

Rot Grün Blau Ergebnis
x x Gelb
x x Cyan
x x Magenta
x x x Weiß

Viel Spaß bei euren Lichtspielen 😉

Code:


int ledr = 12;
int ledg = 11;
int ledb = 10;

void setup() {

  pinMode(ledr, OUTPUT);
  pinMode(ledg, OUTPUT);
  pinMode(ledb, OUTPUT);

  Serial.begin(9600);

  delay(500);
}

void loop() {

  //Rot -> Grün -> Blau
  Serial.println("Red");
  digitalWrite(ledr, HIGH);
  delay(2000);
  digitalWrite(ledr, LOW);
  delay(500);

  Serial.println("Green");
  digitalWrite(ledg, HIGH);
  delay(2000);
  digitalWrite(ledg, LOW);
  delay(500);

  Serial.println("Blue");
  digitalWrite(ledb, HIGH);
  delay(2000);
  digitalWrite(ledb, LOW);
  delay(500);

  //Farbmischung
  Serial.println("Yellow");
  digitalWrite(ledr, HIGH);
  digitalWrite(ledg, HIGH);
  delay(2000);
  digitalWrite(ledr, LOW);
  digitalWrite(ledg, LOW);
  delay(500);

  Serial.println("Cyan");
  digitalWrite(ledg, HIGH);
  digitalWrite(ledb, HIGH);
  delay(2000);
  digitalWrite(ledg, LOW);
  digitalWrite(ledb, LOW);
  delay(500);

  Serial.println("Magenta");
  digitalWrite(ledr, HIGH);
  digitalWrite(ledb, HIGH);
  delay(2000);
  digitalWrite(ledr, LOW);
  digitalWrite(ledb, LOW);
  delay(500);

  Serial.println("White");
  digitalWrite(ledr, HIGH);
  digitalWrite(ledg, HIGH);
  digitalWrite(ledb, HIGH);
  delay(2000);
  digitalWrite(ledr, LOW);
  digitalWrite(ledg, LOW);
  digitalWrite(ledb, LOW);
  delay(500);
}