Eine RGB-LED steuern mit Potentiometern und Arduino

Für mein großes Projekt, einen Tonuino-Klon, sind noch einige kleiner Experimente mit den einzelnen Bauteilen nötig, um das große Ganze zu verstehen. Am Wochenende kam eine große Bestellung mit vielen Bauteilen die noch getestet und ausprobiert werden wollen.

Gestern habe ich nun die Zeit gefunden, erste Experimente mit den Potentiometer zu machen. Mein erster Aufbau war sehr simpel und so habe ich über den Potentiometer eine die Helligkeit einer blauen LED gesteuert.

Mein Sohn (5) ist ein großer Licht- und Elektronik-Fan so war mein Ziel am Abend etwas zu bauen, was ihm Freude bereitet. Nur eine Lampe dunkel oder hell zu machen wäre für ihn nicht spannend genug. So habe ich den Aufbau einfach etwas erweitert. Eine einfache LED mit einem Potentiometer wäre ja langweilig. Im neuen Aufbau finden sich nun drei Potentiometer und eine RGB-LED.

Für den Aufbau habe ich folgende Materialien benötigt:

  • Arduino Uno V3
  • Breadboard
  • RGB-LED
  • 3x Potentiometer
  • 12x Kabel male/male
  • 3x Widerstand 100 Ohm

Der Aufbau sieht nun wie folgt aus:

 

Jeder Potentiometer steuert eine Farbe der RGB-LED und so lassen sich durch drehen der Potentiometer die Farbe der LED einstellen. Hier hilft das PWM des Arduino, weshalb darauf geachtet werden muss, dass wir die digitalen Pins mit dem Tilde-Zeichen(~) nutzen. 

int poti1 = A0; // Eingang des ersten Potentiometer
int poti2 = A1; // Eingang des zweiten Potentiometer
int poti3 = A2; // Eingang des dritten Potentiometer
int led1 = 6;   // Eingang RGB-LED
int led2 = 5;   // Eingang RGB-LED
int led3 = 3;   // Eingang RGB-LED

void setup() {
  // put your setup code here, to run once:
  pinMode(led1, OUTPUT);    // Pinmode der Anschlüsse auf Ausgang setzen
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  Serial.begin(9600);       // Serialmonitor starten um die Werte der Potentiometer zu sehen
}

void loop() {
  // put your main code here, to run repeatedly:
 Serial.println(analogRead(poti1));   // Ausgabe der einzelnen Werte der Potentiometer
 Serial.println(analogRead(poti2));
 Serial.println(analogRead(poti3));
 Serial.println("---------");
 delay(100);
 int pwm1 = analogRead(poti1)/4;    // Wert für das PWM für Ausgang 1
 int pwm2 = analogRead(poti2)/4;    // Wert für das PWM für Ausgang 2
 int pwm3 = analogRead(poti3)/4;    // Wert für das PWM für Ausgang 3
 analogWrite(led1, pwm1);           // Schreiben des PWM Werts für die LED 
 analogWrite(led2, pwm2);           // Eingänge (Werte von 0 bis 255);
 analogWrite(led3, pwm3);
 }

Der Aufbau des Steuerungsprogramms ist sehr simpel. Ich lese über die die analogen Eingänge A0 bis A2 die jeweiligen Werte der Potentiometer aus und bekomme Werte zwischen 0 bis 1023 zurück. Um das PWM des Arduino nutzen zu können benötige ich Werte zwischen 0 und 255. Die einfachste Lösung erschien mir den Eingangswert des Potentiometers durch den Wert 4 zu teilen.

2 Gedanken zu „Eine RGB-LED steuern mit Potentiometern und Arduino

  1. Eileen Antworten

    hii,
    Ich habe für ein Schulprojekt den Aufbau und die Programmierung verwendet, mit ein paar mehr RGB. Funktioniert alles super, nur die Potis überhitzen immer und gehen kaputt. Was kann man dagegn tun? bzw. Gibt es noch andere Wege um die Potentiometer anzuschließen?

    • joergmu Autor des BeitragsAntworten

      Hallo Eileen,
      vielen Dank für deinen Kommentar. Es scheint so, dass die Potis nicht ausreichend dimensioniert sind. Ich habe in meinem Aufbau welche benutzt mit einen Widerstand von 10kOhm. Damit klappt es ganz gut auch ohne große Hitzeentwicklung. Oft werden die Potis sehr warm wenn diese auf kleiner Stellung sind. Ich hoffe ich konnte dir mit meinen Ausführungen weiterhelfen.

      Liebe Grüße
      Jörg

Schreibe einen Kommentar

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