Eine blinkende LED haben wir schon programmiert, nun wollen wir aus dem Blinken ein Stufenloses faden der Helligkeit erzeugen. Dieses können wir mit der gleichen Schaltung erledigen wie wir in der Lektion 1: Blinkende LED haben.
Die Anschlüsse 2 bis 13 auf dem Mega2560 sind die PWM Anschlüsse, auf dem folgenden Bild rot markiert.
Diese PWM Anschlüsse können mit den Befehlen HIGH und LOW eingeschaltet oder ausgeschaltet werden. Des Weiteren können wir mit den diesen Anschlüssen auch analoge Werte übertragen, d.h. ein Wertebereich von 0 bis 255, wobei 0 dem Befehl LOW und 255 dem Befehl HIGH entspricht.
Der Quelltext für den FadeEffekt einer LED sieht wie folgt aus:
int brightness = 0; // Definiert den Startwert für die Helligkeit. int fadeAmount = 5; // Definiert die Stufen in welche der Fade erfolgen soll int pin = 13; // Definiert den PIN an welchem die LED angeschlossen ist. int delayTime = 10; // Definiert den Wert der Pause welche die Loop nach einem Fade machen soll. void setup() { pinMode(pin, OUTPUT); // Setzt den PIN9 als Ausgangssignal. } void loop() { analogWrite(pin, brightness); // Schreibt ein Analoges PWM Signal an den PIN13 brightness = brightness + fadeAmount; // Addiert einen Schritt auf die Helligkeit if (brightness == 0 || brightness == 255) { // Wenn die Helligkeit gleich 0 ODER die Helligkeit gleich 255 dann fadeAmount = -fadeAmount ; // die Schritte im Minusbereich setzen , aus dem Startwert von 5 wird -5 } delay(delayTime); // eine kleine Pause damit der Fadeeffekt sichtbar wird, sonst würde die LED nur schnell flackern. }
Hier nun ein kleines Video zu dem FadeEffekt der LED.
Und zum Schluss den Quellcode zum Download.
Es wäre wichtig anzumerken, dass die PWM-Pins je nach Arduinotyp gewält werden sollten.
Bei uno, nano und mini sind es 3, 5, 6, 9, 10, 11