Gast
#1533940
8-fach 12-Bit Soft-PWM LED-Dimmer für mega48 Dimmen mit der Hardware-PWM eines mega/tiny ist eigentlich eine von den einfachen Übungen. Leider ergeben sich damit bei kleinen PWM-Werten subjektiv große Helligkeitsveränderungen, während bei den hohen Wert kaum noch ein Effekt erkennbar ist. Will man Beleuchtung steuern, dann muss Rücksicht genommen werden auf die menschliche Empfindung/Empfindlichkeit für Helligkeitsveränderungen: Die Helligkeit sollte logarithmisch zunehmen. Damit zeigen sich aber auch schon die Grenzen der Hardware-PWM mit ihrer 8-Bit Auflösung: im Zahlenraum von 255 lassen sich nur begrenzt viele Zahlen einordnen, die in einem logarithmischen Verhältnis stehen. Somit muss eine höhere PWM-Auflösung her, die allerdings dann nur softwaremäßig realisiert werden kann. Anliegend ein Beispiel, mit dem man/frau bis zu 8 LEDs mit einer Auflösung von 12-Bit bei einem PWM-Takt von 76Hz ansteuern kann. Der Dimmer wird über TWI oder RS232 angesteuert. Zusätzlich sind noch zwei Schnörkel eingebaut: Die Überleitung vom aktuellen Helligkeitswert auf einen neuen mit bis zu 255 Zwischenschritten und ein Zufallsmodus, in dem ununterbrochen die Überleitung zwischen neuen Zufallswerten wiederholt wird. Weitere Beschreibung gibts in der readme sowie im dokumentierten C-Code. Als Hardware wurde ein mega88 verwendet, es reicht aber auch ein mega48 oder mega8 (bei letzterem müssen einige Registernamen angepasst werden). Viel Spaß beim Dimmen, Michael S.