Ich versuche, eine Schaltung zu erstellen, die es mir ermöglicht, eine Spannung (sei es AC oder DC) innerhalb des Bereichs des Arduino ADC zu skalieren und zu versetzen.
Die Spannung kann zwischen + und - 250 V liegen, aber ich muss auch in niedrigeren Spannungsbereichen eine gute Empfindlichkeit haben.
Zu diesem Zweck betrachte ich eine Schaltung, mit der Sie den Spannungsbereich variieren können, den der Eingang erwartet, und ihn entsprechend verstärken / dämpfen. Wie ich die Entscheidung treffen und die verschiedenen Verstärkungen einstellen werde, ist vorerst ein anderes Thema. Mich interessiert im Moment nur die Skalierung und Verrechnung.
Bisher bin ich auf diese Schaltung gekommen:
Das scheint genau das zu tun, was ich für den Bereich von +/- 250 V will. Ich weiß nicht, wie "sicher" diese Schaltung ist und ob ich eine der Komponenten mit den 250 V gefährde oder nicht. Die Diagramme unten zeigen (von links nach rechts) die Eingangsspannung, den Stromverbrauch des unteren 10-M-Widerstands, die Spannung über dem 100-M-Widerstand (der den Arduino-ADC-Eingang simuliert) und den Stromverbrauch des oberen 10-M-Widerstands.
Wenn ich jetzt die Eingangsspannung auf nur +/- 2,5 V absenke und den Rückkopplungswiderstand des Operationsverstärkers entsprechend anpasse, springt aus irgendeinem Grund die Offsetspannung, die der Operationsverstärker hinzufügt, direkt nach oben. Ich weiß nicht genau, ob dies die Schuld des Simulators ist, den ich verwende, oder ob es wirklich passieren wird, da ich diese Schaltung noch nicht mit einem Steckbrett versehen habe (ich denke, das ist die nächste Stufe).
Dies ist die Ausgabe der 2,5-V-Version:
Sie können sehen, wie der Offset hochgesprungen ist und die Ausgabe massiv übersteuert.
Wenn ich den unteren 10K-Widerstand auf den virtuellen Masse-Offset-Spannungsteiler auf nur 3,3K absenke, wird dies kompensiert, aber das ist nicht schön - ich möchte nur den einen Widerstand variieren.
Der Operationsverstärker ist (wird) ein 5-V-Einzelversorgungs-Rail-to-Rail-E / A.
Die beiden Dioden sollen den Eingang des Operationsverstärkers vor Überspannung schützen - ich weiß nicht, ob diese Schaltung sie unbedingt benötigt, aber ich denke, es schadet nicht, sie dort zu haben.
Außerdem weiß ich nicht, ob die Widerstandswerte ganz meinen Wünschen entsprechen - ich habe sie gewählt, um den Stromverbrauch niedrig und die Impedanz hoch zu halten. Ich möchte nicht, dass sie den Frequenzgang der Schaltung mehr beeinflussen, als ich helfen kann - die Eingangswellenform könnte alles von DC bis zu etwa 500 kHz oder so sein, und ich muss diese am ADC-Ende so originalgetreu wie möglich reproduzieren. (Ich weiß, dass der Arduino nur bei niedrigeren Geschwindigkeiten wirklich abtasten kann, aber der Arduino dient nur zum Experimentieren - das endgültige System verwendet einen dsPIC mit 1,1 Msps ADC).
Was kann ich also tun, um A) einen stabileren Offset zu erhalten, B) die Variation der Eingangsempfindlichkeit zu ermöglichen, ohne entweder den Operationsverstärker oder den ADC zu zerstören, und C) die Schaltung sicher zu machen, um sie beispielsweise mit a zu verbinden Europäische Netzspannung?
Mehrere Kommentare:
Wenn die von Ihnen verwendete Software keine Komponentenbezeichner zulässt, verwenden Sie etwas, das dies zulässt. Verwenden Sie das zumindest, wenn Sie den Schaltplan zeichnen, damit andere ihn sehen können. Simulatoren werden sowieso überbewertet. Sie haben ihren Nutzen, aber allzu oft scheinen sie den Benutzer vergessen zu lassen, dass er ein eigenes Gehirn hat. Bei einer trivialen Schaltung wie Ihrer würde es länger dauern, sie in einen Simulator einzugeben, als sie einfach auszudenken.
Mit einem Teiler mit drei Widerständen können Sie, wie ich oben erwähnt habe, viel tun:
Dadurch kann der 0-Vdd-Ausgangsbereich nicht immer exakt mit dem Eingangssignal gefüllt werden. Aber selbst wenn dies nicht möglich ist, gibt es normalerweise eine Lösung, die gut genug ist. Je mehr Sie dämpfen müssen, desto einfacher ist es im Allgemeinen, die Ausgabe in den gewünschten Bereich zu bringen.
Um diese Schaltung zu analysieren, beachten Sie, dass R2 und R3 selbst einen Spannungsteiler von Vdd bilden. Dies kann man sich als Spannung zwischen Vdd und Masse mit einer bestimmten Impedanz vorstellen (siehe Thevanin):
Wobei R4 = R2 // R3. Wie Sie sehen können, haben wir einen einfachen Spannungsteiler mit zwei Widerständen. Die Teilerverstärkung ist R4/(R1+R4) und die Ausgangsimpedanz ist R1//R4. Aus der Mathematik der 7. Klasse wissen wir, dass alles, was diese Schaltung mit der Eingangsspannung macht, beschrieben werden kann durch:
Vout = Vin(M) + B
Sie können M und B leicht genug aus der obigen Gleichung von zwei verschiedenen Punkten aus finden. In Ihrem Fall ist Vdd = 5 V, Sie möchten also, dass der Ausgang um die Hälfte oder 2,5 V symmetrisch ist. Bei Vin = 0 möchten Sie also Vout = 2,5. Zwei weitere offensichtlich bekannte Punkte sind die Spitzen der Eingangswellenform. Nehmen wir den negativen, also bei Vin=-250 Vout=0. Jetzt können M und B leicht gelöst werden.
Wenn Sie eine exakte Lösung finden möchten, können Sie die Gleichungen für M und B in Bezug auf R1, R4 und V1 schreiben. Solange V1 größer als 0 und kleiner als Vdd ist, ist eine exakte Lösung möglich. Aus dem vereinfachten zweiten Schema sollte ersichtlich sein, dass:
M = R4/(R1 + R4)
B = V1 * R1 / (R1 + R4)
Beachten Sie, dass dieses System unterbeschränkt ist, da es 3 Unbekannte und nur 2 Gleichungen gibt. Der zusätzliche Freiheitsgrad kann als endgültige Ausgangsimpedanz von Vout ausgedrückt werden, die R1//R4 ist.
Sie haben hier genug, um alle Gleichungen aufzuschreiben und zu lösen. Das ist nicht mehr Elektronik, sondern Grundschulrechnen, das ist also dein Job. Stattdessen werde ich hier einen weniger genauen, aber intuitiveren Hack machen.
Angenommen, Sie möchten, dass die Ausgangsimpedanz 10 kΩ nicht überschreitet. Wir wissen, dass die Dämpfung hoch sein wird, also wird R1 deutlich größer als R4 sein. Machen wir der Einfachheit halber einfach R4 = 10 kΩ. Dadurch wird die Ausgangsimpedanz etwas kleiner als 10 kΩ. Sie haben einen Eingangsbereich von 500 V und möchten einen Ausgangsbereich von 5 V, daher sollte die Teilerverstärkung 1/100 betragen. Um die Dinge noch einmal zu vereinfachen, machen wir einfach R1 = 100 * R4 = 1 MΩ. Das führt tatsächlich zu einer Verstärkung von 1/101, aber ein kleiner Spielraum ist eine gute Idee, und Sie müssten 1% Widerstände besorgen, um sicherzustellen, dass die Verstärkung nicht mehr als 1/100 beträgt. Bisher haben wir:
R1 = 1 MΩ
R4 = 10 kΩ
Bei diesem hohen Dämpfungsverhältnis entspricht B ziemlich genau V1, also machen wir einfach V1 = 2,5 V. Jetzt müssen wir noch R2 und R3 von R4 bekommen. Von den obigen Werten sollte jeder 20 kΩ betragen. Wir machen jedoch einige Annäherungen, und es ist trotzdem gut, einen kleinen Slop zuzulassen, also würde ich mit dem nächstniedrigeren gemeinsamen Wert von 18 kΩ beginnen.
Jetzt müssen Sie das alles anschließen und die Ausgangsspannung an den Spitzen der Eingangsspannung berechnen, wobei Ungenauigkeiten in den Widerständen berücksichtigt werden. Ich überlasse Ihnen das als Übung, aber die obigen Werte sind entweder gut genug oder für einen Ausgangspunkt ziemlich nah dran.
Die Offset-Spannung steigt, wenn Sie die Verstärkung erhöht haben und Sie den nicht invertierenden Eingang über "Mittelpunkt" eingestellt haben.
Bei der oberen Schaltung gibt es tatsächlich eine Dämpfung, sodass der Operationsverstärker seinen Ausgang nicht sehr stark ansteuern muss, um den invertierenden Eingang auf 2,5 V zu halten.
Wenn Sie Rf auf 10 Meg erhöhen, muss der Ausgang seinen Ausgang auf die erforderliche Spannung treiben, um dem Eingangsstrom zu entsprechen und den invertierenden Eingang auf 2,5 V zu halten.
Bei 0 V am Eingang muss der Ausgang beispielsweise auf 5 V schwingen, um den invertierenden Eingang auf 2,5 V zu halten. Wenn Sie Rin gleich Rf haben und die Eingangsspannung (0 V) und die Mittelpunktspannung an -IN (2,5 V) kennen, ist es einfach herauszufinden, wie hoch der Spannungsteiler (Operationsverstärker OUT) sein sollte (5 V). )
Wenn Ihr Signal um einen anderen Punkt (0 V) als den Mittelpunkt des Operationsverstärkers (2,5 V) schwingt, ändern Sie beim Ändern der Verstärkung auch den Effekt, den der DC-Offset (z. B. 2,5 V) hat.
BEARBEITEN - Wenn Sie so viele Operationsverstärker wie nötig verwenden möchten, wäre es am einfachsten, einen festen Eingangsspannungsteiler zu haben, gefolgt von einem nicht invertierenden Unity-Gain-Puffer und dann einigen Operationsverstärkern mit unterschiedlichen Verstärkungen. Sie können auch ein paar "Abgriffe" am Eingangsspannungsteiler verwenden und dann z. B. ein paar OptoMOS verwenden , um das Signal entsprechend zu leiten (diese sind nützlich für die AC / DC-Einstellung, um auch den Kondensator zu umgehen).
Wie Olin erwähnt, wird jede parasitäre Kapazität einen Tiefpassfilter erzeugen, der eine ziemlich niedrige Grenzfrequenz haben kann, also müssen Sie sich dessen bewusst sein, wenn Sie für Ihre höchsten Frequenzen entwerfen, ein paar pF machen einen großen Unterschied mit 10 Megaohm (ich würde bleiben bis <= 1 Megaohm) Die Eingangsimpedanz muss ebenfalls sehr hoch sein (>100 Megaohm), um eine Dämpfung zu verhindern, daher wäre ein FET-Eingangs-Operationsverstärker am besten.
Soweit Doppelschienen gehen, können sie hier das Leben erleichtern, wenn Sie eine DC-Kopplung benötigen, eine Ladungspumpe verwendet werden kann (die Schienen müssen nicht symmetrisch sein), gefolgt von einer Filterung oder natürlich einem Schaltregler. Sie haben das Signal um 0 V bis zum (Operationsverstärker vor dem) ADC und dann zur Pegelverschiebung.
Ich würde mir ein paar Eingangsstufen für Oszilloskope ansehen, da diese anscheinend die gleichen Anforderungen haben. Es gibt viele da draußen, sehen Sie sich einige der Servicehandbücher für kommerzielle Bereiche an, und auch Sachen wie Bitscope und DSO Nano/Quad.
Wahrscheinlich würde es auch nicht schaden, ein gutes Buch über Opamps zu kaufen, wenn Sie noch keins haben - ein anständiges, frei verfügbares ist Opamps for Everyone .
IIRC geht sehr detailliert auf die simultanen Gleichungen ein, die an der Berechnung der Konstanten der Geradengleichung beteiligt sind (wie Olin ein wenig auf den Widerstandsteiler eingeht). Wenn Sie also eine einzige Versorgung behalten möchten, wäre Olins Rat in Kombination mit den ersten paar Kapiteln gutes Lesen.
Persönlich würde ich mich für die Doppelschiene entscheiden, da sie Dinge wie die Aufrechterhaltung einer konstanten DC -> AC-Eingangsimpedanz erleichtert und Probleme mit Mittelpunktvorspannung verhindert, wenn Sie von der 1x- auf die 10x-Sondeneinstellung wechseln, wodurch R1 in Olins Beispiel effektiv geändert wird.
Das Ziel von 500 kHz sollte die Dinge ein wenig einfacher machen, da Sie sich nicht so viele Gedanken über Hochgeschwindigkeitsprobleme machen müssen. Möglicherweise möchten Sie jedoch, dass ein Filter für Anti-Aliasing-Zwecke ein gutes Stück vor 500 kHz abrollt - ich würde sagen, um 350 kHz, um das Filtern einigermaßen einfach zu halten. Ich nehme an, Sie möchten einige Teilungseinstellungen (bis zu sagen 100 mV/div) und Sie möchten den Bildschirm auch in 10 unterteilen. Ich gehe auch davon aus, dass Sie eine Sonde mit einer 10-fachen Einstellung verwenden werden.
Also bei maximaler Teilungseinstellung: 500/10x Tastkopf = 50V, geteilt durch 1:10 Eingangsspannungsteiler = 5V. Bei einer typischen Oszilloskop-Eingangsimpedanz von 1 Megaohm würde dies 900 k und 100 k für den Teiler entsprechen.
Für den niedrigsten Bereich von 100 mV/div benötigen Sie eine Verstärkung von 50 vom Eingang zum ADC. 1V Eingang dividiert durch 10 = 100mV, mal 50 ergibt 5V.
Das Aufteilen der Verstärkung auf ein paar Operationsverstärker erleichtert die anderen Verstärkungseinstellungen und behält eine anständige Bandbreite bei (höhere Verstärkung = niedrigere Bandbreite der Operationsverstärker). Nehmen wir an,
ein Operationsverstärker mit z von 1, 2 und 10 (unter Verwendung von Standard-CMOS-Multiplexern wie 74HC4051/2) gibt Ihnen einige Optionen von 1 bis 50. Dann einen ADC-Puffer-Operationsverstärker mit abschließender Pegelverschiebung, und Sie können alles mit einem Quad-Operationsverstärkerpaket (FET-Eingang) tun .
Majenko
Majenko