Controlar un LED RGB con Arduino
Farben mischen mit Pulsweitenmodulation
Elige un microcontrolador
Pins, Schaltplan und Sketch in den Arbeitsschritten ändern sich entsprechend deiner Auswahl. Sie bleibt gespeichert.
Was ist eine RGB-LED?
Pulsweitenmodulation (PWM) verstehen
Drei einzelne Farben nacheinander
Asignación de pines Arduino UNO
Beim Arduino UNO schreibst du die Pin-Nummer direkt in den Sketch, also 5 und 7 ohne Zusatz.
int LEDrot = 5;
int LEDgruen = 6;
int LEDblau = 3;
int Pause = 1000; // Pause von 1000 ms, also 1 Sekunde
int Helligkeit = 150; // Zahlenwert zwischen 0 und 255 - gibt die Leuchtstärke der einzelnen Farbe an
void setup()
{
pinMode(LEDblau, OUTPUT);
pinMode(LEDgruen, OUTPUT);
pinMode(LEDrot, OUTPUT);
}
void loop()
{
analogWrite(LEDrot, Helligkeit); // rot einschalten
delay(Pause); // Pause
analogWrite(LEDrot, LOW); // rot ausschalten
analogWrite(LEDgruen, Helligkeit); // gruen einschalten
delay(Pause); // Pause
analogWrite(LEDgruen, LOW); // gruen ausschalten
analogWrite(LEDblau, Helligkeit); // blau einschalten
delay(Pause); // Pause
analogWrite(LEDblau, LOW); // blau ausschalten
}Descargar: programmcode-einzelfarben-arduino-uno.ino
Placa en el IDE de ArduinoArduino Uno
Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.
Asignación de pines Wemos D1 Mini
Den Pin-Nummern muss das D vorangestellt werden. Du schreibst also D6 und D7 in den Sketch, nicht 6 und 7.
int LEDrot = D1;
int LEDgruen = D2;
int LEDblau = D3;
int Pause = 1000; // Pause von 1000 ms, also 1 Sekunde
int Helligkeit = 150; // Zahlenwert zwischen 0 und 255 - gibt die Leuchtstärke der einzelnen Farbe an
void setup()
{
pinMode(LEDblau, OUTPUT);
pinMode(LEDgruen, OUTPUT);
pinMode(LEDrot, OUTPUT);
}
void loop()
{
analogWrite(LEDrot, Helligkeit); // rot einschalten
delay(Pause); // Pause
analogWrite(LEDrot, LOW); // rot ausschalten
analogWrite(LEDgruen, Helligkeit); // gruen einschalten
delay(Pause); // Pause
analogWrite(LEDgruen, LOW); // gruen ausschalten
analogWrite(LEDblau, Helligkeit); // blau einschalten
delay(Pause); // Pause
analogWrite(LEDblau, LOW); // blau ausschalten
}Descargar: programmcode-einzelfarben-wemos-d1-mini.ino
Placa en el IDE de ArduinoLOLIN(WEMOS) D1 R2 & mini
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Asignación de pines ESP32-Wroom
Beim ESP32 schreibst du die GPIO-Nummer direkt in den Sketch, also 26 und 27 ohne D davor.
int LEDrot = 5;
int LEDgruen = 17;
int LEDblau = 16;
int Pause = 1000; // Pause von 1000 ms, also 1 Sekunde
int Helligkeit = 150; // Zahlenwert zwischen 0 und 255 - gibt die Leuchtstärke der einzelnen Farbe an
void setup()
{
pinMode(LEDblau, OUTPUT);
pinMode(LEDgruen, OUTPUT);
pinMode(LEDrot, OUTPUT);
}
void loop()
{
analogWrite(LEDrot, Helligkeit); // rot einschalten
delay(Pause); // Pause
analogWrite(LEDrot, LOW); // rot ausschalten
analogWrite(LEDgruen, Helligkeit); // gruen einschalten
delay(Pause); // Pause
analogWrite(LEDgruen, LOW); // gruen ausschalten
analogWrite(LEDblau, Helligkeit); // blau einschalten
delay(Pause); // Pause
analogWrite(LEDblau, LOW); // blau ausschalten
}Descargar: programmcode-einzelfarben-esp32-wroom.ino
Placa en el IDE de ArduinoESP32 Dev Module
Dafür muss die ESP32-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Asignación de pines NodeMCU
Auch beim NodeMCU steht vor der Pin-Nummer ein D. D1 entspricht GPIO 5, D2 entspricht GPIO 4.
int LEDrot = D1;
int LEDgruen = D2;
int LEDblau = D3;
int Pause = 1000; // Pause von 1000 ms, also 1 Sekunde
int Helligkeit = 150; // Zahlenwert zwischen 0 und 255 - gibt die Leuchtstärke der einzelnen Farbe an
void setup()
{
pinMode(LEDblau, OUTPUT);
pinMode(LEDgruen, OUTPUT);
pinMode(LEDrot, OUTPUT);
}
void loop()
{
analogWrite(LEDrot, Helligkeit); // rot einschalten
delay(Pause); // Pause
analogWrite(LEDrot, LOW); // rot ausschalten
analogWrite(LEDgruen, Helligkeit); // gruen einschalten
delay(Pause); // Pause
analogWrite(LEDgruen, LOW); // gruen ausschalten
analogWrite(LEDblau, Helligkeit); // blau einschalten
delay(Pause); // Pause
analogWrite(LEDblau, LOW); // blau ausschalten
}Descargar: programmcode-einzelfarben-nodemcu.ino
Placa en el IDE de ArduinoNodeMCU 1.0 (ESP-12E Module)
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Farben mischen
int LEDrot = 5;
int LEDgruen = 6;
int LEDblau = 3;
int Pause = 1000; // Pause von 1000 ms, also 1 Sekunde
int Helligkeit = 150; // Zahlenwert zwischen 0 und 255 - gibt die Leuchtstärke der einzelnen Farbe an
void setup()
{
pinMode(LEDblau, OUTPUT);
pinMode(LEDgruen, OUTPUT);
pinMode(LEDrot, OUTPUT);
}
void loop()
{
// gruen und rot ein = gelb
analogWrite(LEDgruen, Helligkeit);
analogWrite(LEDrot, Helligkeit);
delay(Pause);
// gruen und rot aus = gelb aus
analogWrite(LEDgruen, LOW);
analogWrite(LEDrot, LOW);
// gruen und blau ein = türkis
analogWrite(LEDgruen, Helligkeit);
analogWrite(LEDblau, Helligkeit);
delay(Pause);
// gruen und blau aus = türkis aus
analogWrite(LEDgruen, LOW);
analogWrite(LEDblau, LOW);
// rot und blau ein = lila
analogWrite(LEDrot, Helligkeit);
analogWrite(LEDblau, Helligkeit);
delay(Pause);
// rot und blau aus = lila aus
analogWrite(LEDrot, LOW);
analogWrite(LEDblau, LOW);
}Descargar: programmcode-farbmischung-arduino-uno.ino
int LEDrot = D1;
int LEDgruen = D2;
int LEDblau = D3;
int Pause = 1000; // Pause von 1000 ms, also 1 Sekunde
int Helligkeit = 150; // Zahlenwert zwischen 0 und 255 - gibt die Leuchtstärke der einzelnen Farbe an
void setup()
{
pinMode(LEDblau, OUTPUT);
pinMode(LEDgruen, OUTPUT);
pinMode(LEDrot, OUTPUT);
}
void loop()
{
// gruen und rot ein = gelb
analogWrite(LEDgruen, Helligkeit);
analogWrite(LEDrot, Helligkeit);
delay(Pause);
// gruen und rot aus = gelb aus
analogWrite(LEDgruen, LOW);
analogWrite(LEDrot, LOW);
// gruen und blau ein = türkis
analogWrite(LEDgruen, Helligkeit);
analogWrite(LEDblau, Helligkeit);
delay(Pause);
// gruen und blau aus = türkis aus
analogWrite(LEDgruen, LOW);
analogWrite(LEDblau, LOW);
// rot und blau ein = lila
analogWrite(LEDrot, Helligkeit);
analogWrite(LEDblau, Helligkeit);
delay(Pause);
// rot und blau aus = lila aus
analogWrite(LEDrot, LOW);
analogWrite(LEDblau, LOW);
}Descargar: programmcode-farbmischung-wemos-d1-mini.ino
int LEDrot = 5;
int LEDgruen = 17;
int LEDblau = 16;
int Pause = 1000; // Pause von 1000 ms, also 1 Sekunde
int Helligkeit = 150; // Zahlenwert zwischen 0 und 255 - gibt die Leuchtstärke der einzelnen Farbe an
void setup()
{
pinMode(LEDblau, OUTPUT);
pinMode(LEDgruen, OUTPUT);
pinMode(LEDrot, OUTPUT);
}
void loop()
{
// gruen und rot ein = gelb
analogWrite(LEDgruen, Helligkeit);
analogWrite(LEDrot, Helligkeit);
delay(Pause);
// gruen und rot aus = gelb aus
analogWrite(LEDgruen, LOW);
analogWrite(LEDrot, LOW);
// gruen und blau ein = türkis
analogWrite(LEDgruen, Helligkeit);
analogWrite(LEDblau, Helligkeit);
delay(Pause);
// gruen und blau aus = türkis aus
analogWrite(LEDgruen, LOW);
analogWrite(LEDblau, LOW);
// rot und blau ein = lila
analogWrite(LEDrot, Helligkeit);
analogWrite(LEDblau, Helligkeit);
delay(Pause);
// rot und blau aus = lila aus
analogWrite(LEDrot, LOW);
analogWrite(LEDblau, LOW);
}Descargar: programmcode-farbmischung-esp32-wroom.ino
int LEDrot = D1;
int LEDgruen = D2;
int LEDblau = D3;
int Pause = 1000; // Pause von 1000 ms, also 1 Sekunde
int Helligkeit = 150; // Zahlenwert zwischen 0 und 255 - gibt die Leuchtstärke der einzelnen Farbe an
void setup()
{
pinMode(LEDblau, OUTPUT);
pinMode(LEDgruen, OUTPUT);
pinMode(LEDrot, OUTPUT);
}
void loop()
{
// gruen und rot ein = gelb
analogWrite(LEDgruen, Helligkeit);
analogWrite(LEDrot, Helligkeit);
delay(Pause);
// gruen und rot aus = gelb aus
analogWrite(LEDgruen, LOW);
analogWrite(LEDrot, LOW);
// gruen und blau ein = türkis
analogWrite(LEDgruen, Helligkeit);
analogWrite(LEDblau, Helligkeit);
delay(Pause);
// gruen und blau aus = türkis aus
analogWrite(LEDgruen, LOW);
analogWrite(LEDblau, LOW);
// rot und blau ein = lila
analogWrite(LEDrot, Helligkeit);
analogWrite(LEDblau, Helligkeit);
delay(Pause);
// rot und blau aus = lila aus
analogWrite(LEDrot, LOW);
analogWrite(LEDblau, LOW);
}Descargar: programmcode-farbmischung-nodemcu.ino