Forum: Mikrocontroller und Digitale Elektronik PWM: LED geht nicht ganz aus


von Fuchsi (Gast)


Angehängte Dateien:

Lesenswert?

Mein Problem ist wenn ich LEDs per PWM ansteure das diese nie ganz 
ausgehen, sie glimmmen immer ganz leicht.

Habe folgende einfache Schaltung auf einem Steckbrett aufgebaut.
Der N-Channel LL-Mosfet ist ein BUK 553 weil ich ca. 25 LEDs ansteuern 
will.
Habe einen Testcode bei dem auch verschiedene PWM-Stufen funktionieren.

OCR0A=255   LED voll an
OCR0A=128   LED leuchtet etwas weniger
OCR0A=0     Hier liegt das Problem:
Die LEDs gehen trotz OCR0A=0 nicht ganz aus sie glimmen noch leicht.
Wenn ich jedoch den µC abstecke sind die LEDs aus.

Habe den Aufbau und das C-File mal angehängt.
Weiß jemand woran das liegen kann???

von Fuchsi (Gast)


Angehängte Dateien:

Lesenswert?

Nochmals die Schaltung ;-) ...

von G ast (Gast)


Lesenswert?

Ist ganz normal.
Entweder nicht ganz voll AN oder nicht ganz voll AUS.
Wurde auch diverse Male hier behandelt. hast du mal die Suche versucht?

von Flo (Gast)


Lesenswert?

im Schaltplan ist die Dioden falschrum :D

Könnte sein dass der tiny seine Ausgänge ganz kurz beim Timerwert 0 auf 
1 setzt, um  ihn dann gleich wieder auszuschalten.
Hast du ein Oszi zur Hand?

Ansosnten, kann man sich ja überlegen beim PWM-Wert 0 einfach den Timer 
zu stoppen, das müsste auf jeden Fall funktionieren.

von Manuek (Gast)


Lesenswert?

Fuchsi schrieb:
> OCR0A=0

OCR0A=0 bedeutet nicht das die PWM aus ist.

von MWS (Gast)


Lesenswert?

Phase Correct PWM verwenden.

von Fuchsi (Gast)


Lesenswert?

Habe leider kein Oszi...
Werde es mal mit Phase Correct PWM versuchen.
Danke für die schnellen Antworten.

von spess53 (Gast)


Lesenswert?

Hi

>Werde es mal mit Phase Correct PWM versuchen.

Invertierte PWM geht auch.

MfG Spess

von Sven (Gast)


Lesenswert?

Ist normal, hängt mit der Funktion der Hardware-PWM zusammen. Bei 25 
LEDs musst Du sowieso Soft-PWM machen, da kannst Du das abfangen. Codes 
für Soft-PWM und LED Dimmen gibts über die Suche.

von Fuchsi (Gast)


Lesenswert?

> Invertierte PWM geht auch.

Bis jetzt verwende ich:
Clear OC0A/OC0B on Compare Match, set OC0A/OC0B at BOTTOM
(non-inverting mode)

Meinst du mit invertierte PWM:
Set OC0A/OC0B on Compare Match, clear OC0A/OC0B at BOTTOM.
(inverting mode)

Warum sollte es dann anders sein???

von spess53 (Gast)


Lesenswert?

Hi

>Warum sollte es dann anders sein???

Weil der Mode bis auf Null geht.

MfG Spess

von Karl H. (kbuchegg)


Lesenswert?

Weil die Reihenfolge der Ereignisse ist:
Bei BOTTOM auf jeden Fall erst mal den OCR Pin wie gewünscht schalten
(in deinem Fall also ein)
und erst dann das Vergleichsregister betrachten ob der Pin ausgeschaltet 
werden muss.

Fazit: Wird der Timer rückgesetzt, wird der Pin bei dir auf jeden Fall 
erst mal eingeschaltet um dann gleich darauf wieder ausgeschaltet zu 
werden.

-> Eine Einstellung von 0 sorgt nicht für komplette Ruhe auf dem Pin

Drehst du um, dann hast du die Situation, dass u zwar 0 erreichen 
kannst, aber nicht exakt 100%. Also das umgekehrte Problem: Der Pin ist 
nie einfach nur durchgehen eingeschaltet.

Speziell bei LED ist aber letzters zu verschmerzen, denn ob die 99.9% 
ihrer Zeit eingeschaltet ist oder 100% kannst du ohne Messinstrumente 
nicht feststellen.

von Fuchsi (Gast)


Lesenswert?

vielen dank für eure super unterstützung, und für die Erklärung. jetzt 
habs sogar ich verstanden.

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.