Ich bin kein Elektroingenieur, also hat mich eine einfache Aufgabe in der letzten Woche oder so verwirrt.
Ich arbeite an einem Projekt, bei dem ich ein Blackbox-Gerät mit einer stabilen einstellbaren Spannung versorgen muss. Die Box tastet die Spannung ab, die durch analoges Lesen bereitgestellt wird.
Die von mir bereitgestellten Messwerte liegen bei etwa 1,8 und 3,1 V (2 Betriebsmodi) und verschieben sich für Werte von 0,01 V auf Grenzen von +-0,2 (also benötige ich in Modus 1 Messwerte zwischen 1,6 und 2,0 und in Modus 2 I Messwerte zwischen 2.9 und 3.3 erforderlich) Diese Messwerte werden sich ändern, daher muss Vout die Änderungen zeitnah widerspiegeln.
Ich verwende ein Arduino, um die Daten zu erhalten, sie auf Spannung zu berechnen und eine PWM auszugeben.
Ich verwende einen Pro-Mini, der mit 5 V an seinem Rohstift betrieben wird, wodurch das Gerät in den 3,3-V-Modus versetzt wird. Somit entsprechen mein Aref- und 100% PWM-Zyklus beide 3,3 V
Die Frequenz von PWM liegt bei etwa 20 kHz (ich kann dies bei Bedarf leicht ändern).
Ich habe einen anderen Arduino als Signalanalysator zusammengestellt (da mir ein Oszilloskop fehlt), mit dem ich die Vout-Leitung untersuche (es implementiert ein LCD und drückt analogRead-Daten auf den Bildschirm, mit einigen zusätzlichen Qualifizierern, die ich mir anzeigen lassen kann die Extremwerte von Vout).
Jetzt, wo ich sehe, was ausgespuckt wird, kann ich anfangen, daran zu arbeiten. Ich lese also viel Filterliteratur, aber die Hälfte davon ergibt für mich keinen wirklichen Sinn. Ich habe festgestellt, dass ich einen Tiefpassfilter implementieren muss, um Vout zu glätten.
Also habe ich versucht, einen RC-Filter zu bauen, C- und R-Werte "durch Glück" auszuwählen und verschiedene Kombinationen und Reihenfolgen von RC-Filtern auszuprobieren. Ich kann es schaffen, den Vout-Swing (anfänglich 3,3-0) auf 3,3-2,7 zu senken, wenn ich auf 3 V abziele. Obwohl besser, ist es immer noch nicht annähernd die Genauigkeit, die ich benötige. (Die Teile, die ich gerade zur Hand habe, sind etwas begrenzt, also gab es in meinen Tests einen 0,1uC, 1/8uC, 1uC, einen 100uC, einen 1500uC und Widerstände von 10K bis 0,25K) IIRC die Kombination, die ich eingestellt habe Up ist derzeit 100uC/1K 1. Ordnung (das Hinzufügen von Bestellungen brachte mir vernachlässigbare Verbesserungen, daher verstehe ich dieses Konzept möglicherweise falsch)
Weitere Lektüre hat angedeutet, dass ich möglicherweise etwas mehr als nur einen Filter brauche, um damit fertig zu werden. Bisher scheint der beste Vorschlag des Internets eine Kombination aus LM317 als einstellbarem Regler und einem MOSFET zu sein, um die PWM in einen variablen Widerstand umzuwandeln.
Abbildung 37 im technischen Datenblatt des LM317 scheint der Reglerteil zu sein, den ich dafür verwenden könnte, aber ich kann den variablen Widerstandsteil dessen, was ich brauche, nicht herausfinden.
Meine Frage ist also zweigeteilt, da ich annehme, dass ich damit möglicherweise in die falsche Richtung gegangen bin:
Ist dies der beste Weg, dies zu tun? Ich versuche, die Teile- und Kostenzahlen niedrig zu halten, also möchte ich nicht den ganzen Weg des MOSFET-Reglers gehen, wenn sich herausstellt, dass ich nur einen falschen Filter verwende.
Wie löse ich diese Herausforderung?
Es gibt viele Möglichkeiten, das zu tun, was Sie wollen. Es gibt sogar ICs, die das für Sie erledigen (programmierbare Spannungsregler).
Aber wenn Sie Ihrem Weg folgen möchten, benötigen Sie zuerst eine PWM mit mehr als 8 Bit Auflösung (10 mV ist der Schritt, 3,3 V ist die maximale Spannung, die Sie erreichen möchten - das sind 330 Schritte oder 9 Bit), stellen Sie sicher, dass dies der Fall ist Dein PWM hat die richtige Auflösung.
Dann müssen Sie den PWM-Ausgang filtern. Die "einfachste" Lösung ist in der Tat RC. Dies ist nicht die effizienteste, aber es ist in Ordnung, wenn Sie eine gewisse Welligkeit akzeptieren können. Wählen Sie eine Manschettenfrequenz, die mindestens 10-mal kleiner als die PWM-Frequenz ist, um eine angemessene Welligkeitsdämpfung zu erzielen (in Ihrem Fall 2 kHz). Für einen RC-Filter erster Ordnung wählen Sie R folgendermaßen aus:
R = 1/(2 x pi x C xf)
Dann müssen Sie den Ausgang des Filters puffern. Dies kann mit einem als Follower verwendeten Operationsverstärker erfolgen. Stellen Sie sicher, dass die Versorgungsspannung des Operationsverstärkers ausreichend ist, um eine Sättigung zu vermeiden, und dass der Verstärker ausreichend Strom für Ihre Anwendung liefern kann.
Sie können so etwas haben:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Wählen Sie R1/R2, um die Verstärkung (oder Dämpfung) einzustellen, wählen Sie R4/(R3+R4), um den Offset einzustellen, wählen Sie C*R2, um die Filterfrequenz einzustellen. Die Ausgabe ist entgegengesetzt zu Ihrer PWM-Einstellung (0 = max, 255 = min).
Wenn Sie ein 5-V-PWM-Signal bei 20 kHz haben, sollte die Tiefpassfilterung eines Tastverhältnisses von 10 % bei etwa 2 kHz etwa 0,5 V ergeben, 50 % wären etwa 2,5 V und 100 % wären 5 V. Es ist nur der Mittelwert über einen PWM-Zyklus.
Sobald Sie dies in der Hand haben, sollten Sie wissen, wie Sie Ihr Signal skalieren und versetzen. Wenn Sie um eine Verstärkung von weniger als eins skalieren müssen, benötigen Sie einen Spannungsteiler (dh Vorwiderstände) oder einen invertierenden Verstärker (Operationsverstärker), den Sie später erneut invertieren müssen. Offset würde mit einem Operationsverstärker behandelt werden.
Die andere Alternative besteht darin, die PWM-Impulsbreiten zu drehen, um das zu bekommen, was Sie brauchen.
Es scheint mir, dass eine Komponente namens Digital-Analog-Wandler (DAC) das tun würde, was Sie wollen. Sie können wahrscheinlich mit PWM und einem Tiefpassfilter höherer Ordnung machen, was Sie wollen, aber der DAC könnte für Sie einfacher sein.
DACs sind sowohl mit seriellen als auch mit parallelen Digitaleingängen erhältlich. Sie erwähnen Arduino, daher schlage ich vor, dass Sie einen seriellen DAC verwenden möchten, da die serielle Schnittstelle weniger E / A-Pins vom Arduino verwendet. Serielle Übertragungen sind jedoch langsamer als parallele.
Es gibt viele verschiedene Geräte zur Auswahl. Wenn Sie die Zeichenfolge "serial dac" in Google eingeben, erhalten Sie eine Fülle von Auswahlmöglichkeiten. Zwei der ersten Wahlmöglichkeiten: Linear Technology und Maxim bieten kostenlose Muster an. Ich vermute, dass die meisten Hersteller von DACs dasselbe tun.
Ein Tiefpassfilter ist der Weg zu gehen. Ich mache genau dasselbe in einer Schaltung, an der ich gerade arbeite, also habe ich etwas, das funktioniert:
Dies ist im Grunde nur ein Tiefpassfilter dritter Ordnung mit einer Grenzfrequenz von etwa 350 Hz. Bei einem 20-kHz-PWM-Signal liegt die Welligkeit unter 1 mV.
Wenn Sie Ihre Impulsbreite ändern, dauert es etwa 2,5 ms, bis sich das Signal einpendelt.
Dwayne Reid
Jim Dearden
Ebis
Ebis
Ebis