LED RVB
Farben mischen mit Pulsweitenmodulation
Choisir un microcontrôleur
Les broches, le schéma électrique et le sketch des étapes de travail changent selon ta sélection. Celle-ci reste enregistrée.
Was ist eine RGB-LED?
Pulsweitenmodulation (PWM) verstehen
Drei einzelne Farben nacheinander
Brochage 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
}Télécharger : programmcode-einzelfarben-arduino-uno.ino
Carte dans l’IDE ArduinoArduino Uno
Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.
Brochage 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
}Télécharger : programmcode-einzelfarben-wemos-d1-mini.ino
Carte dans l’IDE 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.
Brochage 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
}Télécharger : programmcode-einzelfarben-esp32-wroom.ino
Carte dans l’IDE ArduinoESP32 Dev Module
Dafür muss die ESP32-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Brochage 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
}Télécharger : programmcode-einzelfarben-nodemcu.ino
Carte dans l’IDE 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);
}Télécharger : 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);
}Télécharger : 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);
}Télécharger : 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);
}Télécharger : programmcode-farbmischung-nodemcu.ino