Forum: Mikrocontroller und Digitale Elektronik Atmega 168 – 2 PWM Ausgänge flackern extrem


von T. P. (Gast)


Lesenswert?

Hallo,

wenn mir jemand so helfen könnte, dass auch ich es verstehe und vor 
allem umsetzen kann, wäre ich sehr dankbar:

Ich benutze alle 6 PWM-Ausgänge eines Atmega168, um LEDs anzusteuern 
bzw. zu dimmen und brauche auch alle 6. Jeweils zahlreiche LEDs je 
Ausgang, jeweils über einen BD 435.

Viermal klappt das gut. Aber die LEDs an Pin5 und Pin17 flackern extrem. 
Kein Schönheitsfehler, hat schon was von Stroboskoplicht.

Hier und da lässt sich im WWW dazu was finden, allerdings nichts, was 
mir wirklich geholfen hat.

Wäre sowieso keine symptonbasierte Lösung, aber als phänomenbasierte 
Lösung lässt sich das Ganze mit relativ „großen“ Elkos „lösen“, 100uF 
und mehr.

Allerdings gibt’s dann einen Nebeneffekt, den ich nicht verstehe. Für 
meinen kleinen Verstand dürfte ein „dummer“ Elko nicht mehr können, als 
etwas von dem Strom zu speichern, der an ihm auf dem Weg zur 
Transistorbasis vorbeifließt. Tatsächlich passiert etwas ganz anderes, 
die LEDs leuchten bei gleicher PWM-Dimmstufe extrem viel heller, auch 
schon bei geringer Dimmstufe und sind kaum mehr wirklich „auszufaden“. 
Geradezu so, als ob jener Kondensator an der Transistorbasis aktiv mehr 
Spannung anfordert (bei allen PWM-Ausgängen, auch den nicht flackernden)

Somit zwei Fragen

1) Woher kommt das Flackern und wie bekommt man es hin, dass jene beiden
PWM-Ausgänge nicht flackern - und, das ist der Hauptgrund, warum ich 
hier nochmals einen neuen Beitrag schreibe: mit Arduino!

2) Wieso wirkt ein Elko nicht nur glättend, sondern „Basis-Spannung-
verstärkend“?

Danke !
marc_h

von Theor (Gast)


Lesenswert?

Ich würde empfehlen zunächst Schaltplan und Code (als Anhang) zu posten.

Dann sieht man weiter.

Ist mein Eindruck richtig, dass Du eher Laie bist? Beschreibe doch mal 
Deine Kenntnisse in Stichworten, bitte. Was hast Du für Messmittel?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Da scheint evtl. der Prescaler von Timer 2 zu hoch gewählt, so das er 
nur langsam durchläuft. Es wäre schon schön, wenn du zumindest mal die 
Initialisierung der Timer postest.

T. P. schrieb:
> 2) Wieso wirkt ein Elko nicht nur glättend, sondern „Basis-Spannung-
> verstärkend“?

Ein Transistor in knallharter Emitterschaltung (Emitter direkt an Masse) 
ist ein sehr unlinearer Verstärker. Sobald die Spannung an seiner Basis 
etwa 0,6-0,7V Übersteigt, leitet er. Das ist ja der Gag bei PWM, die 
Transistoren leiten nur oder sperren - dazwischen gibt es nichts.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

T. P. schrieb:
> Aber die LEDs an Pin5 und Pin17 flackern extrem.
Bei welchem Gehäuse? Beim MLF ist Pin 17 sogar AREF.

Du könntest natürlich statt gEhäuse und Pinnummer auch einfach die 
Pinnamen sagen. Die tauchen dann nämlich auch im Programm auf...

von T. P. (Gast)


Lesenswert?

Danke!

Gehäuse: PDIP-28

... ich nutze Arduino!!! Irgendwann wirds sicherlich mal C. Im Moment 
ist es aber herrlich einfach. Nur bei Problemen immer mal wieder eine 
furchtbare "black box". Zumindest tauchen keine Pinnamen auf, jedenfalls 
nicht so, wie man sich in C sowieso mit "herumschlagen" muss. Und 
sichtbarerweise auch kein "Prescaler von Timer 2". Wo finde ich den 
denn?

Der Schaltplan von meinem Versuchsaufbau ist vollkommen unerheblich. 
Selbst wenn man an alle 6 PWM-Ausgänge des Atmegas nur (!) 6 LEDS je mit 
Vorwiderstand schaltet, ist das Problem da: 4x o.k., 2x flackern.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

T. P. schrieb:
> Wo finde ich den
> denn?

Mann, immer noch kein bisschen Programmcode :-( Dann poste doch 
wenigstens mal das *.ino Dings oder schau in den Arduino Foren, wie man 
die PWM Frequenz für Timer 2 (OC2A und OC2B) einstellen kann.

: Bearbeitet durch User
von T. P. (Gast)


Lesenswert?

....???! Ebenso wie der Schaltplan aus genannten Gründen nichts zur 
Sache tut, so auch nichts der Programmcode, zumindest nicht der bei 
Arduino sichtbare und veränderbare. Da wird an gegebener Stelle einem 
betreffenden Pin mit "analogWrite (Pinx, varx);" o.ä. ein "PWM-Wert" 
zugeschrieben, und das war´s quasi. Darüber hinaus gibts nicht wie in C 
einen halbkryptischen Programm-Kaffeesatz, aus dem Spezies noch was 
herauslesen und verändern können.

von Theor (Gast)


Lesenswert?

Nun, ich empfehle Dir aber doch einmal darüber nachzudenken, ob nicht 
diejenigen, die nach Code und Schaltplan fragen auch gute Gründe haben 
es zu tun.

Da Du selbst nicht in der Lage bist, das Problem zu erkennen und zu 
beseitigen und deswegen andere fragst, scheint es mir zweckmäßig 
anzunehmen, dass sie möglicherweise besser wissen als Du, was sie tun.

Es ist unstreitig, dass der Fragesteller an sich durchaus eigene und 
fallweise tatsächlich zutreffende Urteile fällen kann. Aber ohne weitere 
Begründung die Vorlage von Schaltplan und Code abzulehnen, das Problem 
aber auch nicht aus eigener Kraft diagnostizieren zu können, kann 
vernünftigerweise und plausibel als Widerspruch aufgefasst werden.

Soweit es mich betrifft, kann ich nicht definitiv sagen, ob der Code und 
der Schaltplan tatsächlich zu einer Lösung beitragen. Es kann auch ein 
10kW-Sender nebenan auf dem Tisch stehen, von dem wir nichts wissen. 
Jedenfalls aber kann ich in Deinen Erklärungen keinen Grund erkennen, 
warum das Problem auftritt. Also frage ich, wie mir scheint, 
folgerichtig, nach weiteren Informationen.

Das mag an meiner eigenen Unfähigkeit liegen oder auch nicht. Aber Du 
hast auch keine Grundlage darüber zu urteilen. Schaden könnten 
Schaltplan und Code jedenfalls auch dann nicht, wenn ich daraus keinen 
Fehler erkenne. Entweder liegt kein Fehler darin vor oder jemand anderes 
erkennt ihn. Oder wir stellen fest, dass es daran nicht liegen kann. 
Jedenfalls geht es erstmal mit negativen Erkenntnissen weiter bis man 
eine positive findet.

von T. P. (Gast)


Lesenswert?

Danke! Lassen wir das einfach. Dafür ist mir die Zeit zu schade.
Beiträge kurz und schlank halten, das ist die Kunst. Das klappt hier 
nicht. Dafür müsste schon das Vertrauen ins Gegenüber sein, dass der 
schon ausreichend weiß, was relevant ist und was nicht und nicht den 
"10kW Sender auf dem Tisch" übersieht. Warum weder (sichtbarer) Code 
noch Schaltung relavant sind, war auch schon erklärt, da würde ich mich 
nur wiederholen.

"Nun, ich empfehle Dir aber doch einmal darüber nachzudenken...." So 
einen Rat habe ich auch. Schon erstaunlich, egal was man fragt, 2 
Minuten später sind Antworten da. Vielleicht würde sich die Menge an 
(unrelevanten) Gegenfragen auch einfach dadurch dramatisch reduzieren, 
wenn nur die antworten würden, die wirklich das Problem und die Antwort 
kennen würden.

Schönen Tag noch!

von Theor (Gast)


Lesenswert?

T. P. schrieb:
> Danke! Lassen wir das einfach. Dafür ist mir die Zeit zu schade.

Offen gesagt, frustriert mich das jetzt ein wenig. Schade.
Aber gut. Ich halte mich raus.

von Thomas E. (thomase)


Lesenswert?

Theor schrieb:
> Offen gesagt, frustriert mich das jetzt ein wenig.

Echt?

Mir ist es scheißegal, ob seine Leds flackern. Und den meisten anderen 
wahrscheinlich auch.

> Schönen Tag noch!

: Bearbeitet durch User
von T. P. (Gast)


Lesenswert?

Quod erat demonstrandum, hier muss einfach jeder mitreden, auch die, die 
100% nichts zur Sache zu sagen haben.

von Thomas E. (thomase)


Lesenswert?

T. P. schrieb:
> Quod erat demonstrandum, hier muss einfach jeder mitreden, auch
> die, die
> 100% nichts zur Sache zu sagen haben.

Das ist hier keine kostenlose Hotline für Leute, die zu blöd sind, eine 
flackerfreie PWM hinzukriegen, sondern ein Forum, in dem man u.a. über 
Fehler, die andere gemacht haben, diskutiert, um dabei selbst etwas zu 
lernen. Das ist also ein Geben und Nehmen.
Daran hast auch du dich zu halten.
Ansonsten: Ausgestreckter Mittelfinger, beidhändig und gut ist.

Und Flackern ist immer noch besser als gar kein Leuchten.

: Bearbeitet durch User
von Hubert G. (hubertg)


Lesenswert?

T. P. schrieb:
> Quod erat demonstrandum, hier muss einfach jeder mitreden, auch die, die
> 100% nichts zur Sache zu sagen haben.

Du hast absolut Recht. Auf deine Frage und den mitgelieferten 
Informationen hätte niemand antworten dürfen.
Diejenigen die versucht haben dir weitere Informationen entlocken haben 
hier nichts zu suchen wenn sie dein Problem nicht kennen und konkrete 
Lösungsvorschläge haben.

von Stefan (Gast)


Lesenswert?

T. P. schrieb:
> Quod erat demonstrandum, hier muss einfach jeder mitreden, auch
> die, die
> 100% nichts zur Sache zu sagen haben.

Sie selbst tragen doch nichts zur Problemlösung und nölen die Leute, 
welche helfen wollen auch noch voll.
Was war denn Ihrer Meinung nach nun zu beweisen?
Etwa Ihre Unfähigkeit, auf Nachfrage etwas bereitzustellen?
Glauben Sie ernsthaft, dass PWM so geheim ist?
Was soll man Ihrer Meinung nach "100 % ig" zu einer Sache beitragen, wo 
sich der eigentliche Fragesteller querstellt?
Soll das ein Ratespiel werden, soll irgendetwas gedeutet werden oder 
sollen wir vielleicht noch fertigen Code bereitstellen?
Sie sollten an aller erster Stellen mal Ihr Verhalten insgesamt 
überdenken!

von Theor (Gast)


Lesenswert?

Wenn ich doch noch, entgegen meiner erklärten Absicht, mich 
herauszuhalten, etwas bemerken darf:

Ich halte es, rein aus statistischen Gründen, für wenig zweckmässig, nur 
Antworten zu zu lassen, die von Leuten kommen, die genau das 
beschriebene Symptom beobachtet haben und die Ursache dafür gefunden 
haben.

Die geringe Anzahl der bekannten Symptome (Flackern und evtl. das 
Verhalten mit einem Kondensator) lässt sich auf eine Vielzahl von 
möglichen Ursachen zurückführen; von denen mir viele vermutlich nicht 
unbekannt sind, die ich aber erst nach längerem Nachdenken überhaupt 
finde.

Selbst wenn man annimmt, dass zehn Personen hier das Symptom auch einmal 
hatten, ist es wahrscheinlich, dass es sich in der Mehrzahl um 
wesentlich voneinander verschiedene Ursachen handelt und das die konkret 
hier vorliegende Ursache nicht einmal mit einer davon übereinstimmt. Das 
Ergebnis wären dann zehn (oder sagen wir sieben) Beschreibungen von 
Ursachen, die alle nachgeprüft werden müssten (und nach der dritten 
Rückmeldung des TO, dass es das auch nicht war ), Frustration bei den 
Antwortern).

Deswegen ist es, Meinung nach, vernünftiger, das Problem so zu behandeln 
als wäre es noch nie vorher aufgetreten und analytisch vor zu gehen. 
Dazu gehören auch Informationen.

Das hat mit "Vertrauen" nichts zu tun, denn wir haben hier ja keine 
Kenntnisse über die Vorkenntnisse und Erfahrungen des TO und es tritt 
hier im Forum relativ häufig auf, dass geringe Information im ersten 
Posting mit geringer Sachkenntnis korreliert.

Das ist wenigstens mein persönlicher Grund: Analytisch, weil wenig 
Information und nichts voraussetzen, weil keine Basis dafür vorhanden.


Ich kann aber auch nachvollziehen (falls das hier überhaupt zutrifft), 
dass es einem schwer fällt, nicht wenigstens einige eigene Beurteilungen 
der Situation als fraglos korrekt hinzustellen, wenn man schon dieses 
eine Problem nicht selbst lösen kann.
Eine Methode um das Selbstbewusstsein jedenfalls zu einigen Graden zu 
erhalten; sich nicht noch öffentlich als der Trottel hin zu stellen, den 
man sich selbst innerlich schimpft.
Einfacher und ohne Reibung wäre es allerdings gegangen, sich selbst in 
seiner Fehlerhaftigkeit anzuerkennen und einfach an Informationen zu 
geben, was nachgefragt wird. Zu guten Zeiten können sich die meisten 
Leute damit abfinden, dass sie nicht perfekt sind. Ich wünsche uns 
allen, dass uns das gelingt.
Jedenfalls sind abfällige Bemerkungen wegen sich letztlich als "dumm" 
herausstellende Fehler hier viel seltener als Unmut darüber, dass jemand 
sich "quer stellt". Vermutlich, weil die meisten von sich wissen, dass 
sie hin und wieder ganz dumme Fehler machen.

Naja. Die Welt dreht sich weiter und die Sonne scheint auf alle gleich.

von Wolfgang (Gast)


Lesenswert?

T. P. schrieb:
> ....???! Ebenso wie der Schaltplan aus genannten Gründen nichts zur
> Sache tut, so auch nichts der Programmcode, zumindest nicht der bei
> Arduino sichtbare und veränderbare.

Dann poste wenigstens mal die Registerbelegung von Timern und Prescaler.

Wenn du beim Arduino irgendwelchen Programmcode nicht sehen kannst, 
guckst du wahrscheinlich im falschen Verzeichnis.

von T. P. (Gast)


Lesenswert?

Ich hab den ganzen Krams, der hier zum Schluss noch geschrieben wurde, 
nicht mehr gelesen, nicht mal überflogen -und die Zeit lieber kreativ 
ins (zugegeben extrem nervige) Nachforschen gesteckt, nachdem hier 
Antworten (nein, Beiträge) von denen kamen, die die Antwort auch nicht 
wirklich wussten.

Da gibts eine gut und tief verstecke Seite:
https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM

Dort steht die Lösung. Die Zeilen eingefügt. Und nichts flackert mehr.

Soviel zu allen so klugen Antworten, die z.B. meine Schaltpläne und 
Programmcodes einfodern und dann noch leicht "griffig" werden, wenn man 
das nicht macht und Vertrauen dahingehend einfordert, dass man durchaus 
ansatzweise weiß, in welche Richtung die Reise bei der Problemsuche 
gehen muss - und in welche nicht. Traurig, traurig!

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Schade ist allerdings, daß Du zwar Deinen Fehler (ok, der Fehler kam vom 
Arduino, mein Fehler) gefunden hast, aber was Du jetzt wirklich geändert 
hast ...

Eigentlich schade ... ich wollte Dir dazu raten, den Code für den 
nächsten Advent aufzuheben - da braucht's gerne nen flackernden PWM ... 
als Kerzenlicht :)

MfG

von MWS (Gast)


Lesenswert?

T. P. (marc_h2016) schrieb:
> Blubber

Steht das "h" vor "2016" eigentlich für hanswurst?

von Peter D. (peda)


Lesenswert?

T. P. schrieb:
> 1) Woher kommt das Flackern

Liegt an Deinem unbekannten Programm.

T. P. schrieb:
> 2) Wieso wirkt ein Elko nicht nur glättend, sondern „Basis-Spannung-
> verstärkend“?

Liegt an Deiner unbekannten Schaltung.

T. P. schrieb:
> Hier und da lässt sich im WWW dazu was finden, allerdings nichts, was
> mir wirklich geholfen hat.

Wenn Du nicht verlinken magst, was Du gefunden hast, dann brauchst Du 
solche nichtssagenden Zeilen auch nicht zu posten.

von Theor (Gast)


Lesenswert?

T. P. schrieb:
> Ich hab den ganzen Krams, der hier zum Schluss noch geschrieben wurde,
> nicht mehr gelesen, nicht mal überflogen -und die Zeit lieber kreativ
> ins (zugegeben extrem nervige) Nachforschen gesteckt, nachdem hier
> Antworten (nein, Beiträge) von denen kamen, die die Antwort auch nicht
> wirklich wussten.
>
> Da gibts eine gut und tief verstecke Seite:
> https://www.arduino.cc/en/Tutorial/SecretsOfArduinoPWM
>
> Dort steht die Lösung. Die Zeilen eingefügt. Und nichts flackert mehr.
>
> Soviel zu allen so klugen Antworten, die z.B. meine Schaltpläne und
> Programmcodes einfodern und dann noch leicht "griffig" werden, wenn man
> das nicht macht und Vertrauen dahingehend einfordert, dass man durchaus
> ansatzweise weiß, in welche Richtung die Reise bei der Problemsuche
> gehen muss - und in welche nicht. Traurig, traurig!


Tja. Traurig in der Tat; nur aus anderen Gründen als Du meinst. Es 
trifft sich unglücklich, dass Du Dich in Deiner, wie ich meine, 
unzweckmäßigen Haltung durch die Umstände bestätigt siehst.
Aber wie das so ist: Ein Problem, dass nicht gelöst wird, wird sich 
später wieder zeigen. Vielleicht auch nie. Wer weiß, wozu das gut ist?


Und zum wiederholten Male sage ich mir, dass ich keine Ergänzung 
unzureichender Information mehr empfehlen werde. Und zum ebensovielten 
Male, dass ich auf Arduino-Fragen nicht mehr antworte.

Bin eben einfach unverbesserlich. :-)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Es ist also genauso, wie ich es im 2ten Post dieses Threads geschrieben 
hatte:
Beitrag "Re: Atmega 168 – 2 PWM Ausgänge flackern extrem"

Und dann noch das hier:

Matthias S. schrieb:
> oder schau in den Arduino Foren, wie man
> die PWM Frequenz für Timer 2 (OC2A und OC2B) einstellen kann.

War doch gar nicht so schwer, oder?

von Danke_Theor (Gast)


Lesenswert?

Danke, Theor.

Danke für die herrlich zu lesenden Worte, danke für die fast schon 
Poesie und die geile Grammatik.
Es war eine Freude, deinen Text zu lesen, ganz ehrlich.
Und deine Beherrschung, einfach meisterhaft.
Das ist ein Beispiel, das ich mir als Lesezeichen speichere.

Alle Daumen hoch von mir und bitte weiter so :)

von Theor (Gast)


Lesenswert?

Danke_Theor schrieb:
> Danke, Theor.
>
> Danke für die herrlich zu lesenden Worte, danke für die fast schon
> Poesie und die geile Grammatik.
> Es war eine Freude, deinen Text zu lesen, ganz ehrlich.
> Und deine Beherrschung, einfach meisterhaft.
> Das ist ein Beispiel, das ich mir als Lesezeichen speichere.
>
> Alle Daumen hoch von mir und bitte weiter so :)

Dankeschön.


Den Preis für die bestgeputzte Glaskugel hat, meine ich, Matthias S. 
abgeschossen.

Matthias S. schrieb:
> Es ist also genauso, wie ich es im 2ten Post dieses Threads geschrieben
> hatte:
> Beitrag "Re: Atmega 168 – 2 PWM Ausgänge flackern extrem"

Ob er das Phänomen direkt an der Beschreibung erkannt hat, oder war das 
Intuition?

von Stefan F. (Gast)


Lesenswert?

Ich bin echt schockiert, wie undankbar sich T.P hier gezeigt hat!

von Robin S. (der_r)


Lesenswert?

Stefan U. schrieb:
> Ich bin echt schockiert, wie undankbar sich T.P hier gezeigt hat!

Dachte auch, ich bin im falschen Film

@TO: Les mal deine eigenen Beiträge nochmal und überleg mal, was du 
sagst... ich denke jeder würde anfangs ohne weitere Informationen Code 
und Schaltplan für sinnvoll halten, wem tut das weh?

Einfach unglaublich.

von Manfred (Gast)


Lesenswert?

Stefan U. schrieb:
> Ich bin echt schockiert, wie undankbar sich T.P hier gezeigt hat!
Man kann es auch schlechtes Benehmen oder Überheblich nennen.
Wichtig ist einzig das:
T. P. schrieb:
> und die Zeit lieber kreativ
> ins (zugegeben extrem nervige) Nachforschen gesteckt

Das heißt doch, der Bubi war einfach nur faul und hat nun eine kleine 
Lektion bezogen, dass das hier nicht zum Erfolg führt.

--------

Wenn ich quer durchs Forum gehe, das scheint doch immer schlimmer zu 
werden: Es werden "Probleme" gepostet, die man mit einem Buch und 
Internetrecherche selbst lösen könnte. Ich weiß nicht, ob ich eine oder 
drei Stunden gesucht habe, als in meinen ersten Arduino-Versuchen eine 
if bzw if - else nicht laufen wollte. Mein Drehencoder war nicht 
bedienbar, dann fiel auf, dass das etwa 33s nach Start passierte ... ich 
bin garnicht auf die Idee gekommen, meinen Stümpercode hier zu 
veröffentlichen, sondern habe meinen Timer und die Variablen beforscht. 
Einen Timerüberlauf hatte ich die Tage wieder, hat wohl zwei Minuten 
gedauert, das zu bereinigen - weil ich es mir letztes Jahr selbst 
erarbeitet hatte.

Liegt das am Alter, weil ich Elektronik bereits lange vor dem Internet 
gelernt habe?

Ich erwähne aber gerne, dass mir hier auch schon geholfen wurde, wobei 
das eine Problem so billig war, dass es einer von Euch direkt aus dem 
Ärmel gezogen hat.

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.