Bei einer RGB LED sind LEDs der Farben Rot, Grün und Blau in einem Element verbaut und können einzeln angesteuert werden. Dadurch sind nicht nur die Grundfarben selbst, sondern auch Mischfarben (Rot + Grün = Gelb) möglich und man braucht zur Realisierung von z.B. Statusanzeigen nur eine LED anstatt mehrerer. Zur Ansteuerung wird aber weiterhin ein PWM-Pin pro Grundfarbe benötigt.

Im Video zum Projekt werden die Werte von 3 Potentiometern eingelesen und damit die Helligkeit der Grundfarben der RGB LED gesteuert.

Hier das Video:

Und hier der Arduino Sketch zum Auslesen der Daten von den Potentiometern und zur Ansteuerung der RGB LED:

// Analog-Pins für Potentiometer
int Rin = 5;
int Gin = 4;
int Bin = 3;
 
// PWM-Pins für RGB-LED Ansteuerung
int Rout = 6;
int Gout = 9;
int Bout = 10;
 
// RGB Werte zwischenspeichern
int Rvalue = 0;
int Gvalue = 0;
int Bvalue = 0;
 
void setup() {
  Serial.begin(9600);
 
  // Pins zur LED-Ansteuerung auf OUTPUT setzen
  pinMode(Rout, OUTPUT);
  pinMode(Gout, OUTPUT);
  pinMode(Bout, OUTPUT);
}
 
void loop() {
 
  // Werte einlesen und von 10bit auf 8bit vierteln 
  Rvalue = analogRead(Rin)/4;
  Gvalue = analogRead(Gin)/4;
  Bvalue = analogRead(Bin)/4;
 
  // Ausgabe auf Serial Monitor
  Serial.print(Rvalue);
  Serial.print(" - ");
  Serial.print(Gvalue);
  Serial.print(" - ");
  Serial.print(Bvalue);
 
  // Werte auf LED setzen
  analogWrite(Rout, Rvalue);  
  analogWrite(Gout, Gvalue);  
  analogWrite(Bout, Bvalue);  
 
}

9 thoughts on “Eine RGB LED am Arduino betreiben

  • 14. September 2014 um 22:17
    Permalink

    Dank für die klasse Anregung, bin noch Anfänger.
    Könnte man das auch mit einem Encoder mit Taster (Drehimpulsgeber) realisieren.
    Wäre über Tips und Hinweise wie man das machen könnte sehr dankbar.
    Gruß Axel

    Antworten
    • 15. September 2014 um 7:08
      Permalink

      Hallo Axel,
      einen digitalen Encoder kannst du für die Steuerung natürlich auch verwenden, das Auslesen der Daten ist da aber etwas komplizierter und geht am besten über interrupt-gesteuerte Funktionen. Mehr Infos und Beispielcode dazu findest du hier: http://playground.arduino.cc/Main/RotaryEncoders

      Ein ganz einfaches Beispiel, bei der die Daten in der loop() ausgelesen werden, findest du hier:
      http://www.circuitsathome.com/mcu/reading-rotary-encoder-on-arduino
      Das funktioniert aber nur, wenn der Arduino in der loop() nicht zu viel weiteren Code auszuführen hat, ansonsten wirds zu langsam.

      Ich hab auch seit Monaten ein paar Drehimpulsgeber herumliegen, vielleicht ein gutes Thema für eines der nächsten Videos.

      Antworten
  • 16. Februar 2015 um 13:48
    Permalink

    Hey,

    sag mal ich schaue deinen Blog fast wöchentlich mind. 3 mal an und stelle immer wieder fest, das du geniale Potentiometer hast – kannst du mir sagen von welcher Firma?
    Ich will die auch, weil die Füße und Co einfach genial angeordnet sind und bei meinen immer das Problem ist, dass mind. 1 Fuß abnkickt – die sind teilweise vom Ausgang her so doof angeordnet, dass sie unter meinem Poti sind – auf Grund der Größe

    Antworten
    • 16. Februar 2015 um 13:52
      Permalink

      Hi Stefan,
      von diesen Potis hab ich leider auch nur 3 – und die sind aus dem Original Arduino Starter Kit. Ich schau in jedem Shop, hab diese Potentiometer bisher aber noch nirgends gefunden.
      lg, Adi

      Antworten
      • 17. Februar 2015 um 16:23
        Permalink

        Schade,
        genau das ist auch mein Problem – versuche die Krampfhaft zu finden ;-(
        Na gut – dann heißt es weitersuchen

        Antworten
          • 18. Februar 2015 um 12:46
            Permalink

            Für die Interssierten, die ebenfalls diese Potis haben möchten.
            Habe gerade auf Grund des Versandpreises von der Arduino.cc – Seite mal ein wenig weiter gebohrt und geforscht.

            Bei unserem großen Händler reichelt.de habe ich folgendes gefunden:
            Poti und passend dazu Achse.

            Viel Spaß beim Shoppen….habe gerade ein paar geordert :-) Die schwarzen Achsen gibt’s auch – sind aber leider momentan nicht lieferbar!

  • 6. Juni 2018 um 10:32
    Permalink

    Hallo Adi,

    hier bekommt die LED den Strom ja vom Arduino.
    Wie müsste ich denn vorgehen wenn ich z.B. einen LED Streifen so ansteuern möchte? Da muss ich doch sicher eine externe Stromquelle anschließen?

    Ciao Vigo

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.