8-fach 12-Bit Soft-PWM LED-Dimmer für mega48

Gast #1533940
Lesenswert?

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.
Angehängte Dateien:
Gast #1542879
Lesenswert?

Morgen, so hoffe ich, liefert mir Reichelt die Bauteile für meine bunte 
LED Lampe. Laufen soll die mit einem Mega8, natürlich ist mir erst nach 
der Bestellung eingefallen, dass dieser nur einen 16 bit Timer hat.

Dein Code kommt mir deshalb sehr gelegen wofür ich mich an dieser Stelle 
bedanken möchte!

Gruß, Georg
Gast #2538244
Lesenswert?

Hallo allerseits,

nach gut 2 Jahren habe ich den LED-Dimmer noch einmal überarbeitet:

Die Interrupt-Routinen sind nun in ASM geschrieben, dadurch wird bei 
einem PWM-Takt von 81Hz eine Auflösung von 12.5Bit (0 - 6150) erreicht
- gegenüber bisher 75Hz bei 12Bit (0 - 4096).

Die aktualisierte Beschreibung und einen Schaltplan gibts in der 
Readme.pdf

Viel Spaß bei Dimmen,

Michael S.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren