|
LED halbhell leuchten lassen - Was ist PWM?
PWM steht für Pulsweitenmodulation
(engl.: pulse width modulation).
Eigentlich ist das bessere deutsche Wort für unsere
Anwendung: Pulsbreitensteuerung.
Klingt irgendwie schwierig, oder?
Ist es aber gar nicht.
Stell Dir mal für Dein Zimmer eine Elektroheizung vor!
Wenn Du sie in Deinem frostigen Zimmer (mit 0 Grad Celsius)
benutzt und sie einschaltest, heizt sie Dein Zimmer auf z. B. 20
Grad auf.
Am nächsten Tag machst Du mal folgendes Experiment: Du
schaltest jede Minute die Heizung ein und nach einer Minute wieder
aus und nach einer Minute wieder ein u.s.w.
Die Heizleistung wird dadurch halbiert und Dein Zimmer heizt sich
nur auf etwa 10 Grad auf.
Der gleiche Trick geht auch mit einem großen Elektromotor
(auf keinen Fall einen
Elektromotor direkt an einen ARDUINO-Ausgang hängen!). Als Gedankenexperiment: Schalte ihn
mal im Sekundentakt (besser noch kürzer) ein und aus und ein
und aus usw.
Er wird sich mit etwa halber Geschwindigkeit drehen. Und wenn man
schnell genug ein- und ausschaltet, ist die Geschwindigkeit auch
relativ konstant.
Sogar eine Glühlampe oder eine LED kann man mit diesem Trick
halbhell leuchten lassen. Man muss sie nur schnell genug ein- und
ausschalten - schneller als unser Auge es wahrnehmen kann.
Hier auf der Seite von Strippenstrolch wird es sehr schön erklärt.
Experiment: LED soll halbhell leuchten
LED an Pin 11 / R1 = 220 Ohm

int led = 11; //LED an Pin
11
void setup() {
pinMode(led, OUTPUT);
analogWrite(led, 100); // möglich: 0...255
}
void loop() {
}
Ein neuer Befehl: analogWrite()
Was macht der? Was bedeutet analog und was bedeutet digital?
War Ausgang 11 nicht ein digitaler Ausgang?
Und wofür steht
dieses PWM an einigen dieser digitalen Ausgänge?
Es gibt (komplizierte)
Definitionen. Vereinfacht kann man für unsere Schaltungen
sagen:
digital:
Ein Signal, das nur zwei Zustände einnehmen kann, in unserer
Schaltung: 5V oder 0V
analog:
Ein Signal, das viele Zustände einnehmen kann, in unserer
Schaltung z. B.: 0V 0.05V 0.25V 0.5V oder 5V und viele andere.
Mit analogWrite(Wohin, Wert)
kannst Du den Ausgängen 3, 5, 6, 9, 10 und 11 die Werte
0...255 zuweisen. Sechs PWM-Ausgänge also.
Der Wert 0 bedeutet 0% Pulsbreite, der Wert 255 bedeutet
100% Pulsbreite, der Wert 127 bedeutet 50% Pulsbreite usw.
Mit Hilfe eines Kondensators könnte man damit
tatsächlich eine analoge Spannung erzeugen. Für unsere
LED ist der jedoch nicht notwendig. Unser Auge ist träge
genug, um weniger helles Leuchten aufgrund von PWM wahrzunehmen.
|