Wechselstromquelle (Teil 5)

Elektronik AC OpAmp

Nachdem wir nun mehrere Wege kennen, ein Sinussignal zu erzeugen, ist es an der Zeit, über die Verstärkung des Signals zu sprechen.

Verstärkung

In den letzten Teilen dieses Projekts haben wir uns verschiedene Möglichkeiten zur Erzeugung einer Sinusschwingung angesehen. Alle diese Lösungen hatten ein gemeinsames Problem: Das erzeugte Signal wird unter Last verzerrt oder instabil. Aus diesem Grund haben wir stets eine hochohmige Last von 10 kΩ verwendet. Nun ist es an der Zeit, das zu ändern und über Verstärkung zu sprechen.

Es gibt verschiedene Möglichkeiten, ein Signal zu verstärken. Bei analogen Signalen ist jedoch die Verwendung eines Operationsverstärkers (OpAmp) die gängigste Methode. In unserem Fall werden wir einen LM358 als Verstärker verwenden. Bevor wir richtig loslegen, sollten wir jedoch definieren, was genau wir verstärken wollen. Es gibt drei verschiedene Möglichkeiten: wir können die Leistung, den maximalen Ausgangsstrom oder die Spannung verstärken. In diesem Teil unseres Projekts liegt der Fokus darauf, das Ausgangssignal zu stabilisieren und sicherzustellen, dass das Sinussignal auch bei niederohmigen Lasten korrekt ausgegeben wird. Mit anderen Worten, unser Ziel ist ein höherer Ausgangsstrom.

Operationsverstärker

Bevor wir uns die eigentliche Verstärkerschaltung ansehen, sollten wir zunächst über Operationsverstärker (OpAmps) sprechen. Operationsverstärker sind Differenzverstärker. Sie verstärken die Spannungsdifferenz zwischen den beiden Eingangspins IN+ und IN-. Operationsverstärker haben typischerweise einen sehr hohen Verstärkungsfaktor. Im Falle des LM358 wird die Spannungsdifferenz um einen Faktor von etwa 100 000 verstärkt. Der genaue Faktor ist spannungs-, frequenz- und temperaturabhängig. Natürlich ist die Ausgangsspannung eines Operationsverstärkers nie größer als seine Versorgungsspannung. Tatsächlich liegt die maximale Ausgangsspannung oft etwa 1,5V unter der Versorgungsspannung. Der Grund dafür ist, dass Operationsverstärker typischerweise Transistoren für die Verstärkung verwenden. Siliziumtransistoren benötigen eine Basis-Emitter-Spannung von etwa 0,7 V, bevor sie leitend werden. Rail-to-Rail-Operationsverstärker sind speziell dafür ausgelegt, eine Spannung bis zur Versorgungsspannung zu liefern. Sie sind jedoch komplexer und damit natürlich auch teurer. Das ist aber nur eine Randnotiz, denn der LM358, den wir hier verwenden, ist sowieso kein Rail-to-Rail-OpAmp.

Welchen Sinn hat es, einen Operationsverstärker zu verwenden, wenn die hohe Spannungsverstärkung dazu führt, dass das Ausgangssignal entweder die maximal oder die minimal mögliche Spannung ist? Nun, eine mögliche Anwendung dafür ist die Verwendung eines Operationsverstärkers als Komparator, um ein digitales Signal zu erzeugen, das signalisiert, ob die Spannung an IN+ höher ist als die an IN-. Für diese Anwendung gibt es jedoch spezialisierte Operationsverstärker, die als Komparatoren bezeichnet werden. In den meisten Fällen werden OpAmps nicht in der sogenannten Open-Loop-Konfiguration verwendet, bei der der volle Verstärkungsfaktor zum Tragen kommt. Im Bild unten ist eine weitere OpAmp-Schaltung zu sehen: ein sogenannter Spannungsfolger.

OpAmp in Open-Loop- und Spannungsfolgerkonfiguration

In einer Spannungsfolgerschaltung wird der Ausgang des Operationsverstärkers mit dem IN- Eingang des Verstärkers verbunden. Die gleichzeitige Verwendung eines Ausgangssignals als Eingangssignal wird als Feedbackschleife bezeichnet. Der Ausgang des Verstärkers beeinflusst direkt das Verhalten des Verstärkers, da er zugleich auch als Eingang verwendet wird. Sehen wir uns also einmal an, wie diese Rückkopplung das Verhalten des Operationsverstärkers beeinflusst.

Wie bereits gesagt, verstärkt der Operationsverstärker die Spannungsdifferenz zwischen dem invertierenden Eingang IN- und dem nicht-invertierenden Eingang IN+. Wenn der Ausgang mit IN- verbunden ist, bedeutet dies, dass die Spannung am Ausgang identisch mit der am nicht-invertierenden Eingang ist. Ist die Ausgangsspannung kleiner als die Eingangsspannung an IN+, so ergibt sich eine positive Spannungsdifferenz, die verstärkt wird, wodurch die Ausgangsspannung ansteigt. Ist die Spannung an IN- höher, haben wir eine negative Spannungsdifferenz und die Ausgangsspannung sinkt. Der stabile Zustand, der nach kurzer Zeit erreicht wird, ist derjenige, in dem die Spannung an beiden Eingängen gleich ist. In diesem Zustand ist die Ausgangsspannung genau gleich wie die Eingangsspannung an IN+. Eine Spannungsfolgerschaltung besitzt eine Spannungsverstärkung von 1, was auch als Unity Gain bezeichnet wird. Die Spannung wird nicht verstärkt, allerdings wird der maximale Ausgangsstrom nun durch die Grenzen des Operationsverstärkers definiert und nicht mehr durch die unserer Schaltung zur Signalerzeugung. Auf diesem Weg erreichen wir die gewünschte Stromverstärkung.

Verstärken des Ausgangsstroms

Lass uns nun weitermachen und darüber sprechen, wie wir den Operationsverstärker in unserer Schaltung verwenden können. Der LM358 enthält zwei Operationsverstärker. Wir werden beide in der Spannungsfolgerkonfiguration verwenden. Einer von ihnen wird zur Verstärkung des Sinussignals verwendet und der andere zur Verstärkung der 2,5 V, die wir als Masse-Referenz verwenden. Wir können diese grundlegende Verstärkungsschaltung in Verbindung mit allen vorherigen Signalerzeugungsschaltungen verwenden. Dazu wird einfach den Ausgang der Signalerzeugungsschaltung an den Eingang des Verstärkers angeschlossen.

OpAmp-Schaltung für die Verstärkung des Ausgangsstroms

Aufbau der Verstärkerschaltung

Schauen wir uns nun an, wie wir diese Idee auf die beiden Lösungen anwenden können, die am besten funktioniert haben: die Verwendung eines PWM-Ausgangs oder des externen MCP4725-Moduls als DAC. Das Bild unten zeigt, wie die Verstärkerschaltung auf einem Breadboard aufgebaut und mit der Signalerzeugungsschaltung kombiniert wird. unsere

Zu beachten ist, dass ich eine 9 V Batterie als Spannungsversorgung verwendet habe. Diese 9 V werden verwendet, um den Operationsverstärker zu versorgen, der dann theoretisch eine maximale Ausgangsspannung von bis zu 7,5 V erreichen kann. Wenn wir die 5 V des Arduino verwenden würden, wäre die maximale Ausgangsspannung 3,5 V, was schlecht wäre, da wir versuchen, ein Signal zwischen 0 V und 5 V zu verstärken. Wenn du die Schaltung trotzdem ohne die externe 9-V-Batterie bauen willst, sieh dir die im nächsten Abschnitt vorgeschlagene Schaltung an.

Funktioniert diese Schaltung ohne Änderung des Codes? Nun, in der Theorie sollte sie das und in der Tat tut sie es auch, allerdings nur solange keine Last angeschlossen ist. Sobald der 220 Ω Lastwiderstand angeschlossen wird, sieht das Ausgangssignal wie folgt aus:

Die negative Halbwelle wird abgeschnitten, sobald eine Last angeschlossen wird

Warum passiert das? War es nicht der Sinn der Signalverstärkung, dass das Ausgangssignal unter Last stabil bleibt? Nun, das ist nur für einen bestimmten Spannungsbereich der Fall. Bei der negativen Halbwelle fließt der Strom von der 2,5 V Massereferenz in den Operationsverstärker, der das Sinussignal verstärkt. Der Operationsverstärker arbeitet als Stromsenke. Aber auch wenn die minimale Ausgangsspannung für den LM358 0 V beträgt, kann er bei dieser Spannung keinen nennenswerten Strom aufnehmen, genauso wenig wie er in der Nähe der Versorgungsspannung Strom liefern kann. Der Grund dafür ist, dass der Operationsverstärker einen Transistor verwendet, um den Ausgang mit Masse zu verbinden. Das funktioniert nicht mehr, sobald die Ausgangsspannung unter einen bestimmten Wert fällt. Unterhalb dieses Wertes wird die Sinuskurve abgeschnitten.

Es gibt zwei Möglichkeiten, dieses Problem zu lösen. Ähnlich wie beim Anschluss des VIN-Pins des Operationsverstärkers an 9 V könnten wir den Masse-Pin des Operationsverstärkers an eine Spannung unter 0 V anschließen. Dies ist für uns keine brauchbare Option, da wir keine Spannung unterhalb der 0 V des Arduino haben. Die Alternative ist, die Amplitude der erzeugten Sinuswelle so einzustellen, dass die Ausgangsspannung nie unter den kritischen Wert fällt. Dazu werden wir die Spitze-Spitze-Spannung auf 3 V reduzieren, was bedeutet, dass die niedrigste Spannung 1 V über der Masse des Arduino liegt. Dies entspricht -1,5 V in Bezug auf unsere künstliche 2,5 V Massereferenz. Bei 1 V sollte der Operationsverstärker in der Lage sein, einen Strom von etwa 10 mA abzuleiten. Das ist nicht viel, aber weit besser als die unverstärkte Version, bei der wir schon bei wenigen Milliampere Probleme bekommen. Die erforderliche Codeanpassung ist unten dargestellt:

// Precalculate Sine Values between 1 V - 4 V (51 - 204)
for(int i = 0; i < steps; i++) {
  voltages[i] = sin(i*3.14*2/steps) * 76.5 + 127.5;
}

Nach dieser Anpassung ist das Ausgangssignal eine perfekte Sinuswelle, auch bei angeschlossener 220 Ω Last:

Ausgabe eines sauberen Sinussignals nach Anpassung des Spannungsbereichs

Eine alternative Schaltung für 5 V

Gibt es eine Möglichkeit, diese Schaltung ohne die 9 V Batterie zum Laufen zu bringen? Nun, wenn wir die zuvor verwendete Schaltung und den Code einfach beibehalten, sieht das ausgegebene Signal wie folgt aus:

Ausgangssignal ohne 9 V Batterie

Ohne die 9 V Batterie ist der Ausgangsspannungsbereich noch weiter eingeschränkt. Der neue nutzbare Spannungsbereich reicht von 1 V bis etwa 2,7 V. Oberhalb dieser Spannung ist der Strom, der während der positiven Halbwelle geliefert werden kann, nicht hoch genug für die 220 Ω Last. Mit diesem neuen Spannungsbereich macht es keinen Sinn mehr, 2,5 V als Mitte zu verwenden. Die tatsächliche Mitte zwischen 1 V und 2,7 V liegt bei 1,85 V. Wenn wir den 220 Ω Widerstand zur Masse des Arduino durch einen 120 Ω Widerstand ersetzen, können wir eine Spannung von ungefähr 1,75 V erzeugen, was nahe genug an 1,85 V liegt und keine ausgefallene Widerstandswerte erfordert. Wir können damit eine Sinusschwingung mit einer Amplitude von 0,75 V im Spannungsbereich zwischen 1 V und 2,5 V erzeugen.

Unten ist die angepasste Schaltung und der dazugehörige Code zu sehen:

PWM DAC mit Verstärkerschaltung ohne 9V Batterie

// Precalculate Sine Values between 1 V - 2.5 V (51 - 127)
for(int i = 0; i < steps; i++) {
  voltages[i] = sin(i*3.14*2/steps) * 38.25 + 89.25;
}

Mit diesen Änderungen erhalten wir wieder ein vollständiges Sinussignal, wenn auch mit geringerer Amplitude:

Sinussignalausgabe ohne externe 9-V-Batterie und einer Amplitude von 0,75 V

Das Ergebnis

Wie wir sehen konnten, waren wir in der Lage, das erzeugte Sinussignal durch Verstärkung des Stroms zu stabilisieren. Auf diese Weise können wir nun eine 220 Ω Last anstelle von 10 kΩ verwenden. Das Ausgangssignal bleibt bis zu einem Strom von etwa 10 mA stabil. Bei höheren Strömen wird die Sinuswelle oben und unten abgeschnitten, da der Operationsverstärker nicht mehr Strom liefern oder aufnehmen kann. Zusammenfassend lässt sich sagen, dass es nur eine kleine Verbesserung ist und unser Ergebnis immer noch nicht besonders gut ist.

Eine mögliche Lösung zur weiteren Verbesserung der Schaltung ist die Verwendung einer zusätzlichen Push-Pull-Stufe mit leistungsfähigeren Transistoren. Das würde allerdings weitere Spannungsverluste bedeuten, was bei unserem ohnehin schon sehr eingeschränkten Ausgangsspannungsbereich ein echtes No-Go ist. Bevor wir uns also damit befassen, sollten wir über eine Spannungsverstärkung sprechen. Dies wird das Thema des nächsten Teils dieses Projekts sein.

Vorheriger Beitrag Nächster Beitrag