Du wolltest schon immer mal eine LED sanft heller und dunkler werden lassen? Dann bist du hier genau richtig! Wir tauchen in die Welt der Pulsweitenmodulation (PWM) ein, einer genialen Technik, mit der du die Helligkeit einer LED stufenlos steuern kannst. Klingt kompliziert? Keine Sorge, wir erklären es Schritt für Schritt und zeigen dir, warum PWM viel mehr ist als nur schnelles Ein- und Ausschalten.
Für unser kleines LED-Dimm-Experiment benötigst du:
Der Schaltplan ist denkbar einfach:
Achte darauf, den Vorwiderstand zu verwenden, um die LED vor Beschädigung durch zu hohen Strom zu schützen! Die genaue Widerstandsgröße hängt von der LED ab, aber 220 Ohm sind oft ein guter Startwert.
// Konstanten für den LED-Pin und die Helligkeit
const int ledPin = 9; // LED an digitalem Pin 9 (PWM-fähig!)
const int brightnessSteps = 255; // Anzahl der Helligkeitsstufen (0-255)
void setup() {
// Pin 9 als Ausgang konfigurieren
pinMode(ledPin, OUTPUT);
}
void loop() {
// Sanftes Auf- und Abdimmen der LED
for (int fadeValue = 0 ; fadeValue <= brightnessSteps; fadeValue += 5) {
// PWM-Wert schreiben, um die Helligkeit zu ändern
analogWrite(ledPin, fadeValue);
// Kurze Pause, um den Effekt sichtbar zu machen
delay(20);
}
for (int fadeValue = brightnessSteps; fadeValue >= 0; fadeValue -= 5) {
// PWM-Wert schreiben, um die Helligkeit zu ändern
analogWrite(ledPin, fadeValue);
// Kurze Pause, um den Effekt sichtbar zu machen
delay(20);
}
}
const int ledPin = 9;
: Definiert den digitalen Pin, an dem die LED angeschlossen ist. Wichtig: Dieser Pin muss PWM-fähig sein (auf dem Arduino Uno erkennbar an der ~ Markierung).pinMode(ledPin, OUTPUT);
: Konfiguriert den ledPin
als Ausgang, damit der Arduino Strom an die LED liefern kann.analogWrite(ledPin, fadeValue);
: Das ist der Schlüssel! analogWrite()
schreibt einen Wert zwischen 0 und 255 an einen PWM-Pin. 0 entspricht komplett aus, 255 entspricht komplett an. Die Werte dazwischen steuern die Helligkeit.delay(20);
: Verzögert die Ausführung des Programms um 20 Millisekunden. Das ist wichtig, damit wir das Auf- und Abdimmen der LED mit dem Auge wahrnehmen können.brightnessSteps
: Definiert die maximale Helligkeit, also den maximalen Wert für analogWrite()
.Was passiert hier genau? analogWrite()
schaltet den LED-Pin nicht wirklich analog ein, sondern erzeugt ein schnelles Ein- und Ausschalten. Die Zeit, in der der Pin "an" ist (die Pulsweite), im Vergleich zur Zeit, in der er "aus" ist (die Periode), bestimmt die durchschnittliche Spannung, die die LED "sieht". Je länger der Pin "an" ist, desto heller erscheint die LED. Das ist die Pulsweitenmodulation!
fadeValue += 5
) ändern, um das Dimmen schneller oder langsamer zu gestalten. Kleinere Schritte erzeugen ein sanfteres Dimmen.PWM ist eine einfache, aber leistungsstarke Technik, um die Helligkeit von LEDs stufenlos zu steuern. Mit wenigen Zeilen Code und etwas Hardware kannst du beeindruckende Lichteffekte erzeugen. Experimentiere mit den Werten und Parametern, um die für dich passenden Einstellungen zu finden. Viel Spaß beim Dimmen!