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
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?
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.
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...
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.
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.
....???! 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.
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.
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!
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.
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!
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.
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.
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!
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.
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.
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!
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
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.
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. :-)
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?
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 :)
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?
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.
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.