Ich mache ein Projekt, in dem ich je nach Eingang eines Sensors eine LED mit unterschiedlicher Intensität einschalten möchte. Im Moment simuliere ich den Sensor mit einem Potentiometer.
Ich verwende ein EK-TM4C123GXl-Launchpad. Ich verbinde den "falschen" Sensoreingang mit einem ADC-Eingang (über einen Operationsverstärker), dann variiere ich die PWM-Impulsbreite in Abhängigkeit vom vom ADC gelesenen Wert.
Ich habe getestet, dass der PWM-Ausgang die LED mit Strom versorgt und ihre Helligkeit in Abhängigkeit von der aktuellen Impulsbreite variiert, wenn der ADC-Eingang getrennt ist. Sobald ich jedoch den ADC-Eingang anschließe, geht der PWM-Ausgang auf 0 V (kurz nachdem ich eine „Spitze“ in der LED erzeugt habe, kann ich sie sehen, weil sie für einen Moment stark aufleuchtet).
Ich habe das Problem "gelöst", indem ich einen Widerstand zwischen den PWM-Ausgang und die LED gelegt habe. Allerdings verstehe ich überhaupt nicht, warum das passiert. Ich habe jedoch festgestellt, dass der PWM-Impuls einen Weg zur Masse durch die MCU-Einbauten und den ADC-Eingang findet. Ich sehe immer noch nicht, wie ein Widerstand (R5) das beheben kann.
Die Schaltpläne sind unten (VCC ist eine 9-V-Batterie):
Vorherige Schaltpläne waren falsch, hier ist der richtige:
Der Widerstand R5 ist derjenige, der verhindert, dass der PWM-Ausgang auf Masse geht, dh wenn ich ihn entferne und die LED direkt an PWM0 anschließe, bleibt er ausgeschaltet und seine Anode auf 0 V.
Wie kann das passieren? Kann dies mit dem Eingangsleckstrom zusammenhängen?
Pin-Konfiguration:
Anmerkungen:
Abbildung 1. Ursprüngliche Schaltung.
R1 ist nicht als Potentiometer verdrahtet. Es ist als variabler Widerstand oder "Rheostat" verdrahtet. Wenn Sie den Wischer nach rechts bewegen, sieht der Operationsverstärker 5 V. Wenn Sie ihn nach links bewegen, sieht der Operationsverstärker .
In der Zwischenzeit hat Ihr Operationsverstärker eine Verstärkung von Bei minimaler Eingangsspannung versucht der Ausgang also, 5,77 V zu erreichen, ist aber glücklicherweise, wie ich vermute, durch die Versorgungsspannung von U1 begrenzt. Da Sie nur maximal 3 V erhalten, bedeutet dies wahrscheinlich, dass Sie keinen Operationsverstärker mit Rail-to-Rail-Ausgang verwenden. Überprüfen Sie das Datenblatt, um zu sehen, was der maximale Ausgangsspannungshub ist.
Ich habe gelesen, dass die LED immer durch einen Strombegrenzungswiderstand geschützt werden sollte. ... aber der Punkt ist, ich möchte wissen, wie das Fehlen von R5 dazu führen kann, dass PWM0 auf 0 V geht.
Wenn Sie R5 nicht hinzufügen, wird der PWM-Ausgang überlastet. Die Spannung wird bei etwa der Nenndurchlassspannung V f der LED und bei dem maximalen Strom, den der Mikrocontroller abgeben kann, maximal. Das tut weder dem Mikro noch der LED gut. Verwenden Sie einen Strombegrenzungswiderstand.
Messen Sie den Strom, den die LED ohne R5 zieht (mit und ohne angeschlossenem AINT0). Das würde ich an deiner Stelle tun, nachsehen, was da wirklich los ist.
Ich denke, es ist mehr als "2 mA Antriebsstärke". Diese 2 mA müssen der maximale Wert des EK-TM4C123GXl-Pins sein, auf den Sie achten sollten (das bedeutet, dass der EK-TM4C123GXl mehr als 2 mA liefern kann, aber Sie müssen es begrenzen auf 2 mA).
Wo haben Sie diese 2-mA-Grenze gesehen? Ich konnte es nicht im Datenblatt sehen , es ist auch ein ziemlich großes Datenblatt, es könnte einige Zeit dauern
Meine Vermutung: Wenn der EK-TM4C123GXl 5 V (pwm oder nicht) an die LED gibt, wenn Sie den R5 nicht dort angeschlossen haben, wird dieser 5-V-Ausgang einen Kurzschluss zu GND haben.
Je nachdem, ob Sie sich keine Gedanken über die Kosten machen, können Sie außerdem immer einen Puffer hinzufügen, um die Signalintegrität aufrechtzuerhalten. Dies sollte die PWM davor schützen, möglicherweise auf Masse gezogen zu werden, wenn sie erheblich gedämpft wird.
Ich habe noch einige Tests gemacht. Insbesondere habe ich die Schaltung ohne R5 getestet und die MCU über ihren VBUS-Pin mit 3,3 V versorgt. Alles funktioniert.
Ich kann immer noch Überstrom zur LED bekommen, wenn ich den Rheostat ganz nach rechts drehe (10 mA, während die maximalen Nennwerte für die LED 7 mA angeben).
Zusammenfassend ist das ganze Problem darauf zurückzuführen, dass ein Teil der Schaltung (Sensor, Operationsverstärker) mit einer 9-V-Batterie mit Strom versorgt wurde, während die MCU mit dem PC-USB mit Strom versorgt wurde. Ich habe jedoch keine Ahnung, wie sich dies auf den PWM-Ausgang auswirken kann.
Tony Stewart EE75