MezData-Logo

LEDs mit PWM dimmen

Helligkeit der LEDs mit Pulsweitenmodulation regeln

Dunkel
0 1 2 0
33%
0 1 2 0
66%
0 1 2 0
100%
0 1 2 0
Pulsbreiten der Helligkeiten

Das Prinzip wird hier am Beispiel von 4 Helligkeitsstufen verdeutlicht. Ein Zyklus dauert 3 Takte, die LED leuchtet von 0 Takte (gar nicht) bis 3 Takte (ständig). Die LEDs sollen mit 100Hz angesteuert werden, damit kein Flackern wahrnehmbar ist. Zwei Lösungsvarianten bieten sich an:

  1. Realisierung per Software. Das Signal wird mittels Warteschleife oder ISR erzeugt.
  2. Realisierung mit Hardware (Timer PWM System). Die µC habe bereits eine geeignete Hardware zur Erzeugung von PWM-Signalen eingebaut. An bestimmten Ausgängen können diese Signale abgegriffen werden.

PWM per Software mit ISR

L0 des Z-Eye @1MHz soll 4 Helligkeitsstufen {0..3} annehmen können und mit einer Frequenz von 100Hz angesteuert werden. In einer CTC-ISR des 8Bit Timer0 werden die Helligkeitslevel durchgezählt. Solange der gewünschte Helligkeitslevel nicht erreicht ist, ist die LED eingeschaltet. Bei 4 Werten sind 3 ISR-Aufrufe pro Zyklus nötig, die ISR wird 300 mal pro Sekunde aufgerufen werden (300Hz). Per Tasten an T0 (runter) und T1 (hoch) soll die Helligkeit eingestellt werden.