|
Langsames Farbwechseln einer Dreifarb-LED
Es gibt LEDs, da sind gleich mehrere Farben eingebaut. Sind dies die Farben Rot, Grün und Blau kann man
sehr viele verschiedene Farbtöne zusammenmischen.
Will man einen langsamen Farbwechsel vieler Farben, sind die Beinchen der LED an PWM-Pins des Arduino
anzuschließen und an diesen Pins PWM-Werte mit analogWrite-Befehlen auszugeben.
Ich benutze für dieses Experiment folgende
Dreifarb-LED:

Das lange Beinchen ist der GND-Anschluss.

R1 = 220 Ohm
//LEDs an Pins 9, 10 und 11:
int blauPin = 9;
int gruenPin = 10;
int rotPin = 11;
//PWM-Werte:
int blauWert = 0;
int gruenWert = 0;
int rotWert = 0;
//"Geschwindigkeit":
int zeit = 10; //Zahl größer ==> Farbwechsel langsamer
boolean ersterDurchlauf = true;
void setup() {
pinMode(rotPin, OUTPUT);
pinMode(gruenPin, OUTPUT);
pinMode(blauPin, OUTPUT);
}
void loop() {
//Nur beim ersten Durchlauf: Start mit Blau
if (ersterDurchlauf == true) {
for (blauWert = 0; blauWert < 255; blauWert++) {
analogWrite(blauPin, blauWert);
delay(zeit);
}
ersterDurchlauf = false;
}
//Blau ==> Lila
for (rotWert = 0; rotWert < 255; rotWert++) {
analogWrite(rotPin, rotWert);
delay(zeit);
}
//Lila ==> Rot
for (blauWert = 255; blauWert > 0; blauWert--) {
analogWrite(blauPin, blauWert);
delay(zeit);
}
//Rot ==> Gelb
for (gruenWert = 0; gruenWert < 255; gruenWert++) {
analogWrite(gruenPin, gruenWert);
delay(zeit);
}
//Gelb ==> Gruen
for (rotWert = 255; rotWert > 0; rotWert--) {
analogWrite(rotPin, rotWert);
delay(zeit);
}
//Gruen ==> Petrol
for (blauWert = 0; blauWert < 255; blauWert++) {
analogWrite(blauPin, blauWert);
delay(zeit);
}
//Petrol ==> Blau
for (gruenWert = 255; gruenWert > 0; gruenWert--) {
analogWrite(gruenPin, gruenWert);
delay(zeit);
}
}
|