PWM mit Oszillator dimmt die LED-Anzeige nicht wie erwartet

Ich habe bisher einen ziemlich erfolgreichen Versuch unternommen, ein LED-Display mit einem Arduino Mega 2560 anzusteuern. Die Display-Sequenzen funktionieren gut für sich und der Arduino scheint seine Arbeit zu erledigen und die Muster zu senden. Der Teil, mit dem ich zu kämpfen habe, ist, dass ich versuche, die Intensität des Displays mit PWM zu steuern. Ich verwende einen NE555P-Timer, der hauptsächlich auf den Informationen hier basiert: 555 Oscillator Tutorial

Das Endziel besteht darin, POT1 durch einen Drehschalter zu ersetzen, um mehrere vordefinierte Helligkeitseinstellungen über Widerstände auszuwählen, sowie einen Ort für eine Fotozelle, um eine automatische Dimmung zur Anpassung an das Umgebungslicht bereitzustellen. Ich brauche einen externen Oszillator im Gegensatz zum PWM auf dem Arduino-Board, weil ich vorhabe, einen Atmega-Chip anstelle des gesamten Arduino zu verwenden, wenn mehr hergestellt werden.

Das Problem, das ich habe, ist, dass egal wie ich versuche, die PWM zu regulieren, es keinen Einfluss auf die Helligkeit der LEDs hat. Sie bleiben unabhängig von den Timer-Einstellungen mit der gleichen Intensität beleuchtet. Ich habe eine einzelne Anzeige-LED am Timer vor R48 angebracht, die wie erwartet problemlos dimmt. Es ist das LED-Array, das nicht betroffen zu sein scheint und unabhängig vom Oszillator mit der gleichen Intensität ausgegeben wird. Da die gesamte Eingangsspannung durch die Impulse geregelt werden sollte, scheint es mir, dass sie dimmen müssten, es sei denn, sie beziehen Strom von woanders. Scheint das richtig zu sein? Ich habe versucht, den Transistor 17 durch einen FET zu ersetzen, um festzustellen, ob die Schaltgeschwindigkeit des 2N2222 möglicherweise nicht schnell genug war, aber es gab keine Änderung.

Sollte ich besser einen anderen Timer verwenden oder habe ich einfach etwas falsch angeschlossen? Gibt es eine Möglichkeit, die Spannung in das LED-Array besser zu isolieren? Ich bin ziemlich ratlos, warum die LEDs von der PWM nicht betroffen sind. Auf dem Schaltplan wird die Verbindung zum Arduino Mega2560 durch die Beschriftungen "Digital" dargestellt. Jede Eingabe ist willkommen, ich habe versucht, sie umzuschalten, hatte aber keinen Erfolg. !! Update: Ich habe Änderungen am Schaltplan vorgenommen, basierend auf einigen hilfreichen Vorschlägen. An der Helligkeit des Displays ändert sich allerdings noch nichts. Aktualisierung 3:ControllerC

Probleme beim Einfügen der Bilder...

"Ich brauche einen externen Oszillator im Gegensatz zum PWM auf dem Arduino-Board, weil ich vorhabe, einen Atmega-Chip allein anstelle des gesamten Arduino zu verwenden, wenn mehr hergestellt werden." Häh? PWM ist ein integraler Bestandteil des ATmega. Ich verstehe dein Problem nicht. Auch mit Ihrem 555 ändern Sie nur seine Frequenz, nicht sein Tastverhältnis.
Nein, das Ändern dieses Widerstands ändert sowohl die Frequenz als auch den Arbeitszyklus.
LEDs parallel = schlechte Steuerung der Helligkeit auf einer von ihnen normalerweise
@jippie Wenn ich eine vom ATmega erzeugte Schwingung verwenden würde, würde ich dann immer noch einen Transistor verwenden, um die positive Spannung anzusteuern? Ich wusste nicht, dass der Mega bereits einen an Bord hatte, was mein Leben wahrscheinlich einfacher machen würde. Ich versuche zu verstehen, warum das aktuelle Setup nicht funktioniert, wenn ich versucht habe, ein ähnliches Setup ohne Arduino durchzuführen.
@Andyaka Ich versuche, mit einem vorhandenen Setup zu arbeiten. Vielleicht kann ich es aber besser nachbauen. Die zusammengebundenen LEDs müssen zusammen bleiben, um mit größeren Displays zu funktionieren, die gleich verdrahtet sind.
@HiWay, wenn Sie etwas Brot mit einem schmutzigen Messer buttern würden, würde ich es Ihnen sagen, weil es das Richtige und Richtige ist.

Antworten (1)

Es gibt, denke ich, eine Reihe von Problemen. Versuche dies:

Reduzieren Sie C2 auf 0,01 uF und erhöhen Sie R47 auf 10k. Sie geben Ihren Potwert nicht an, aber ich gehe von 1k aus. Erhöhen Sie dies auf 100.000 und schalten Sie eine 1.000 in Reihe damit. So wie Sie es jetzt haben, wird der Pot-Wert viel zu niedrig, als dass die Schaltung richtig funktionieren könnte.

Dann müssen Sie eine größere Änderung an Ihrem Transistorausgang vornehmen. Versuchen Sie so etwas wie

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Beachten Sie, dass es 2 LED-Ausgänge gibt. Teilen Sie Ihre LEDs in 2 gleiche Gruppen und treiben Sie jede Gruppe mit einem Ausgang an. Dadurch bleiben die PNP-Strompegel innerhalb der Spezifikation (3906 sind nur für 100 mA ausgelegt).

Alternativ können Sie den Transistor und R48/49 vollständig entfernen. Der Ausgangsstrom für einen 555 beträgt 200 mA, das ist ungefähr das, was Ihre LEDs ziehen werden. R48 und R49 sind so niedrig, dass Sie sich dem sowieso nähern.

Schließlich würde ich vorschlagen, Ihre Basiswiderstände (R17 - R32) auf etwa 1k bis 2k zu reduzieren, nur um sicherzustellen, dass die Transistoren stark angesteuert werden.

Vielen Dank, dass Sie sich die Schaltung angesehen haben. Ich habe die Änderungen an der Schaltung gemäß vielen Ihrer Vorschläge vorgenommen. Ich hatte keine 2N3906-Transistoren und habe stattdessen einen Tip31 anstelle von Q1 und einen TIP42 anstelle von Q2 verwendet. Sie sind respektabel mit 3A und 10A bewertet, also habe ich nur einen statt zwei verwendet. Die Anzeige wird weiterhin nicht durch den Oszillator verändert und leuchtet unabhängig von den Änderungen gleich. Der Inline-Widerstand mit POT1 hat es glatter gemacht, danke dafür. Ich werde versuchen, den neuen Schaltplan unten zu posten.
Bitte überprüfen Sie meinen Schaltplan erneut. Sie können immer noch einen 2N2222 für Q1 verwenden, aber R54 geht an die Basis, nicht an den Emitter, und der Emitter geht an Masse.
Ich habe es noch einmal überprüft, ich habe meinen Schaltplan falsch aktualisiert. Das tut mir leid. Weder beim Tip 31 noch beim 2N2222 ändert sich nichts. Es strahlt immer noch hell. Denken Sie, dass der Transistor auf der negativen Seite der LEDs besser ist, um stattdessen die Masse zu regulieren?
Ich habe versucht, das Bild zu aktualisieren ... Der Link wird immer wieder unterbrochen ...
Als erstes würde ich mir die TIP-Datenblätter genau ansehen. Sind Sie sicher, dass Sie die Pin-Reihenfolge richtig gewählt haben? Wenn Sie denken, es ist EBC, liegen Sie falsch – es ist EZB. Dies würde erklären, warum die LEDs leuchten. Zweitens, können Sie einzelne LEDs ein- und ausschalten?
Vielen Dank, dass Sie mir folgen. (mit Kühlkörper nach unten) Das Schema zeigt die Pin-Reihenfolge als BCE. Es ist so gesteckt. Die LEDs schalten sich entsprechend dem Blinkmuster des Arduino-Programms aus und ein. Ich habe ein separates LED-Steckbrett zum Testen, das nicht Teil des LED-Arrays ist, das auch nicht gedimmt wird.
Versuche dies. Kurz R52. Gehen die LEDs aus? Stellen Sie R52 wieder her. Kurz R53. Gehen die LEDs aus? Hast du ein DMM? Wenn Sie dieses Zeug machen wollen, sollten Sie das billigste nehmen, das Sie finden können. Bei eBay bekommt man einen für weniger als 10€.
Nochmals vielen Dank für die Vorschläge und für Ihre Geduld. Ich kann die LEDs kurzschließen. Ich habe auch ein ziemlich gutes Multimeter, das RadioShack 2200039. Die PWM vom 555 scheint in Ordnung zu sein und das Multimeter zeigt die Spannungsumschaltung an, ich bin mir nicht sicher, woher es auf der Seite des LED-Arrays zieht. Ich habe versucht, einen Optokoppler zu einem 2n2222 zu einem TIP31 hinzuzufügen, um zu sehen, ob ich ihn weiter isolieren könnte, aber ohne Erfolg.
Bitte gehen Sie wie folgt vor: Trennen Sie R51 vom 555. Verbinden Sie es mit Masse. Messen Sie die folgenden Spannungen: Basis von NPN, Kollektor von NPN, Basis von PNP. Verbinden Sie nun R51 mit +12. Messungen wiederholen. Sag mir, was du siehst.
An die Basis des NPN: 11,44 V / 2,177 Hz, An den Kollektor von NPN: -0,404 V bis -0,416 V / 2,1 bis 2,5 Hz, An die Basis des PNP: -0,415 V bis -0,413 V / 2,13 bis 2,16 Hertz
Bitte tun Sie, was ich verlangt habe. Trennen Sie R51 vom 555. Verbinden Sie das Ende, das früher mit dem 555 verbunden war, mit Masse. Messen. Verbinden Sie das Ende von R51 mit +12. Messen. Führen Sie alle Messungen in Bezug auf den Boden durch.
Entschuldigung, dass ich das falsch verstanden habe. Diese Messungen sind korrekt, wenn die Masse des Messgeräts mit der Masse des Stromkreises verbunden ist? Ich messe jetzt.
OK, hier sind die Ergebnisse mit an Masse angeschlossenem Messgerät und R51 an Masse. Die Basis von NPN schwankt zwischen 116 mV und -0,4 mV, der Kollektor zwischen 12,16 V und 12,2 V und die Basis von PNP liegt ebenfalls bei 12,16 V bis 12,2 V. Mit R51 an +12 V und Messgerät an Masse: Die Basis von NPN liegt bei 4 mV und erreicht Spitzen bis zu 206 mV. Der Kollektor liegt bei 12,16 V bis 12,2 V sowie an der Basis des PNP. Die Messwerte an der Basis des NPN sind unregelmäßig.
Ich habe einen Widerstand locker geschlagen, hier sind die Zahlen nach dem Wiederanschließen. Die Basis von NPN schwankt zwischen 116 mV und -0,4 mV, der Kollektor zwischen 12,16 V und 12,2 V und die Basis von PNP liegt ebenfalls bei 12,16 V bis 12,2 V. Mit R51 an +12 V und Messgerät an Masse: Die Basis von NPN liegt bei 0,89 V und erreicht Spitzen bis zu 1,05 V. Der Kollektor liegt bei 250 mV bis 350 mV. Die Basis des PNP liegt bei 10,5 V bis 11,47 V.
Wenn Sie R51 mit Masse verbinden, gehen die LEDs aus?
Ja, sie gehen aus, wenn sie gegen Masse kurzgeschlossen sind.
OK. Das bedeutet, dass, wenn der 555 richtig angeschlossen ist, wenn sein Ausgang niedrig ist, die LEDs aus sein sollten. Schließen Sie R51 wieder an und ersetzen Sie den 555 durch einen neuen. Für das, was es wert ist, müssen Sie dem 555 auch eine Entkopplungskappe hinzufügen. Setzen Sie eine 0,1-uF-Keramik zwischen die Pins 1 und 8, so nah wie möglich am Chip, und auch eine 10-uF-Elektrolyse. Sehen Sie sich den Ausgang des 555 mit Ihrem Messgerät an, wobei das Messgerät auf Masse bezogen ist. Variieren Sie den Topf, und das Messgerät sollte Ihnen eine variierende Spannungsanzeige liefern. Gleichzeitig sollte die LED-Helligkeit variieren.
Außerdem habe ich mich möglicherweise in Bezug auf Ihren Timing-Kondensator geirrt. Ersetzen Sie es durch 0,1 uF.
Der Ausgang unterscheidet sich vom 555 und kann eine einzelne LED problemlos PWM. Es hat nur keinen Einfluss auf das LED-Array. Der Entkopplungskondensator war mir nicht bekannt, ich werde diese auch hinzufügen. Ich habe ein paar andere Schaltkreise mit 555 Timern, die ebenfalls davon profitieren könnten. Ich habe den 555 auch ausgetauscht, nur um zu sehen, ich habe bereits ein paar auf dieses Projekt getoastet, damit ein weiterer nicht schadet, haha. Ich habe den Kondensator auch wieder auf 0,1uf getauscht. Gleicher Effekt. Ich werde den TIP31 an den PWM-Ausgang des Arduino anschließen, um zu sehen, ob das funktioniert, und herauszufinden, auf welcher Seite das Problem liegt.
Ich kann die Ergebnisse posten, wenn Sie möchten, nachdem Sie den Arduino angeschlossen haben. Ich werde am liebsten einen ATMega-Chip verwenden. Wenn das funktioniert, kann ich es portieren. Ich habe nur versucht zu verstehen, warum das ursprüngliche Konzept nicht funktioniert hat. Ich schätze wirklich alle Eingaben, Mann. Du bist toll.
Das Display wird beim Durchlaufen des Arduino-PWM gut gedimmt ... Es zieht durch den 555-Timer, wie es scheint.
Sind Sie sicher, dass die 555-Masse die gleiche ist wie die LED-Masse? Kann es sein, dass sie nicht verbunden sind?
Ja, sie sind der gleiche Boden. Die PWM des 555 funktioniert gut mit einer einzelnen LED, nur nicht mit dem gesamten Array. Die PWM vom Arduino dimmt es gut. Die Kombination der NPN- und PNP-Transistoren funktioniert wirklich gut und ermöglicht es, die volle Intensität bis zum Ausschalten zu erreichen. Mit einem einzelnen TIP31 komme ich nur bis ca. 50% hell max.
Dann ist es genau das, was es braucht, um die volle Bandbreite zu erhalten. Und deshalb sagte Ihnen meine Antwort, Sie sollten Ihren Ausgangstreiber von einem NPN auf einen PNP ändern (mit einem NPN, um einen angemessenen Basisantrieb bereitzustellen).
Das NPN-Basislaufwerk war das Ticket. Vielen Dank für all eure Beiträge, es war wirklich hilfreich.