Bit Angle Modulation

Die einfachste Art eine LED mit einem Mikrocontroller zu dimmen ist PWM.

Die meisten Mikrocontroller haben eingebaute Hardware, welche PWM-Signale erzeugen kann.Die Anzahl von Hardware-PWM Kanälen ist jedoch meisten eher gering.

Was jedoch, wenn man viele LEDs dimmen möchte?

Eine Möglichkeit ist die Implementation von Software-PWM. Software-PWM kann jedoch je nach gewünschter Frequenz und Auflösung sehr rechenintensiv sein. Eine gute Alternative ist die Verwendung von Bit Angle Modulation.

Das Prinzip hinter der Bit Angle Modulation

Gleich wie bei der Pulsweitenmodulation wird auch bei der Bit Angle Modulation das Verhältnis zwischen Ein- und Ausschaltdauer variiert. Jedoch ist die Verteilung von Ein- und Ausschaltdauer anders.

In der obenstehenden Grafik wir die Wertigkeit des jeweiligen Bits mit der relativen Ein- bzw. Ausschaltzeit dargestellt. Bit 0 entspricht einer Einschaltdauer von 1, Bit 7 einer Einschaltdauer von 128. Die gesamteinschaltdauer von allen Bits beträgt 255.

Für das Dimmen einer LED werden die einzelnen Bits nacheinander mit ihrer jeweiligen Einschaltdauer ausgegeben.

Um dies zu verdeutlichen ein Beispiel:

Es soll eine LED mit 8-Bit Auflösung und einer Frequenz von ca. 3.922kHz (255us Periodendauer) gedimmt werden. Der aktuelle Dimmwert ist 168. Das Puls-/Pausenverhältnis beträgt also 168us zu 87us bzw. der Tastgrad (Englisch: duty cycle) 66%.

Bei der Pulsweitenmodulation wird die LED für 168us eingeschaltet und danach für 87us ausgeschaltet.

Bei der Bit Angle Modulation wird die LED zuerst für 7us ausgeschaltet, danach für 8us eingeschaltet dann für 16us ausgeschaltet usw. Die gesamte Einschaltzeit pro Periode beträgt schlussendlich 168us und die Ausschaltdauer 87us und ist somit gleich wie bei der Pulsweitenmodulation.

 

Was sind nun die Vor- und Nachteile gegenüber der Pulsweitenmodulation?

Vorteile:

Nachteile:

Demosoftware

Eine einfache Implementation von BAM (Bit Angle Modulation) für die LEDs auf dem Mocca-Mikrocontrollersystem ist hier zu finden.