Forum: Mikrocontroller und Digitale Elektronik LED Dimmer


von Ingo Rauth (Gast)


Lesenswert?

Hi,

ich bin gerade dabei mich in die Materie einzuarbeiten und daher als
erstes versucht mit BASCOM und einem Mega8 einen LED Dimmer zu
realisieren. Dabei beiße ich mir gerade schon den 2. Abend die Zähne
aus. Ich komme nur so weit das, dass LED blinkt, aber das ist leider
noch etwas weit vom Dimmen entfert. Kann mir jemand helfen ? Hier mal
der Code:

$regfile = "m8def.dat"
$crystal = 4000000

Config Portb.1 = Output

Config Timer1 = Pwm , Prescale = 256 , Pwm = 8 , Compare A Pwm = Clear
Down , Compare B Pwm = Disconnect


Do
   Compare1a = 205
   Compare1b = 20
Loop

End

von Karl H. (kbuchegg)


Lesenswert?

> Ich komme nur so weit das, dass LED blinkt, aber das ist leider
> noch etwas weit vom Dimmen entfert.

Na ja. Eigentlich nicht.
Dimmen ist in diesem Fall auch nichts anderes als blinken.
Nur ist das Blinken halt so schnell, dass man es nicht
mehr als blinken erkennt.

von Ingo Rauth (Gast)


Lesenswert?

Alles klar, das gibt schon mal Hoffnung. Und wie komm ich dann zum
Dimmen, also das ich in einem sichtbaren intervall langsam von Hell
nach Dunkel bzw. andersrum komme?

von Steffen S. (strangeperson)


Lesenswert?

Die Helligkeit wird über das Tastverhältnis bestimmt. Und es sollte bei
einer Frequenz um die 100Hz gearbeitet werden! Ich bin grade bei einem
ähnlichen Projekt, allerings verwende ich soft PWM da die Hard PWM's
nicht ausreichen von der Anzahl. Aber wenn du ein bisschen mit
Tastverhältnis herumspielst, kommst du zum Ziel! Quellcode habe ich
leider noch keinen....

von Steffen S. (strangeperson)


Lesenswert?

Das Dimmen selbst erreichst du indem du ein Tastverhältnisbereich von 0%
bis 100% überstreichst. D.h. du startest mit einer Pulspause von 100%
(Aus) und endest bei einer Pulspause von 0% (an), die Stufen musst du
ausprobieren.
Rein programmtechnisch wurde das so ausehen, das du eine Schleife
durchlaufen lässt und die Pulspause in jedem Durchgang etwas erhöhst.

von Karl H. (kbuchegg)


Lesenswert?

Indem du das Verhältnis von Einschalt- zu Ausschaltzeit
der LED veränderst.
Du sich dein Blinken noch im sichtbaren Bereich bewegt, würde
ich mal damit anfangen dieses Verhältnis veränderbar zu machen,
bzw, zu ergründen wie das mit Bascom gemacht wird.
Auf Deutsch: spiel doch mal mit den Compare Werten rum.
Bei bestimmten Werten wird die Led nur kurz aufblitzen, gefolgt
von einer Pause. Bei anderen Werten leuchtet die Led länger,
dafür ist dann halt die Pause kürzer. Das ist dann eigentlich
schon alles: lass die Led jetzt einfach schneller blinken und
du wirst das eigentliche blinken nicht mehr sehen können.
Stattdessen erscheint sie dir im ersten Fall (kurze Einschaltdauer,
lange Pause) dunkel, während sie im zweiten Fall (lange
Einschaltzeit, kurze Pause) hell erscheint. Zwischenwerte in der
Zeitverteilung machen sich dann auch als Zwischenwerte in der
Helligkeit bemerkbar.
Natürlich kann man dann in einer Schleife die bewussten Werte von
einem Extrem zum anderen Extrem und wieder zurück variieren,
was dann die Led in der Helligkeit entsprechend variiert.

von Steffen S. (strangeperson)


Lesenswert?

So in etwa meinte ich das doch auch... ;-)

Da gibt es schon ne Menge auszuprobieren, ich habe im Moment das
Problem, das ich ein Tastverhältnis von 0 - 100% überschreite (lineare
Teilung), aber die Helligkeit sich alles andere als linear verhält. Das
Dimmen findet bei 0-15% Pulsdauer statt, der rest hat auf die Helligkeit
fast keinen Einfluss.

von Karl H. (kbuchegg)


Lesenswert?

Ja so ist das mit Helligkeiten :-)
Die verhalten sich logarithmisch.

von Steffen S. (strangeperson)


Lesenswert?

Aber nur im Auge des Betrachters oder? ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.