Letztes Mal haben wir bereits einen Operationsverstärker verwendet, um den Strom zu verstärken. Dieses Mal werden wir die Spannung erhöhen.
Im letzten Teil dieses Projekts haben wir einen Operationsverstärker verwendet, um den Ausgang unserer Signalerzeugungsschaltung zu puffern, damit wir eine 220 Ω-Last anstelle der zuvor verwendeten 10 kΩ nutzen konnten. Da wir nur an der Stabilisierung des erzeugten Signals interessiert waren, haben wir den Operationsverstärker in Spannungsfolgerkonfiguration verwendet. Ein Spannungsfolger hat eine Spannungsverstärkung von eins, d. h. er verstärkt die Spannung nicht. Heute werden wir sehen, wie ein Operationsverstärker verwendet werden kann, um auch die Spannung unseres Signals zu erhöhen.
Fangen wir mit der Theorie an. Die Operationsverstärkerschaltung, die wir zur Verstärkung unseres Ausgangssignals verwenden werden, wird als nicht-invertierender Verstärker bezeichnet. Die Schaltung für einen solchen nicht-invertierenden Verstärker mit einer Spannungsverstärkung von 2 ist in der folgenden Abbildung dargestellt. Aber wie funktioniert das Ganze?
Um diese Schaltung zu verstehen, sollten wir uns zunächst die Funktionsweise der Spannungsfolgerschaltung vergegenwärtigen. Der Operationsverstärker verstärkt die Spannungsdifferenz zwischen dem invertierenden (+) und dem nicht-invertierenden Eingang (-). Er tut dies mit einem sehr hohen Verstärkungsfaktor. Durch das Verbinden des Ausgangs mit dem nicht-invertierenden Eingang haben wir jedoch eine Rückkopplungsschleife geschaffen. Das Verhalten des Operationsverstärkers ändert sich. Die verstärkte Spannungsdifferenz ist nun die Differenz zwischen der Eingangsspannung Vin
und der Ausgangsspannung Vout
. Wenn Vout
kleiner als Vin
ist, verstärkt der Operationsverstärker diese positive Spannungsdifferenz und die Ausgangsspannung steigt an. Im umgekehrten Fall sinkt die Ausgangsspannung. Der stabile Zustand, der nach kurzer Zeit erreicht wird, ist der, in dem die Eingangsspannung gleich der Ausgangsspannung ist. In diesem Zustand ist die Spannungsdifferenz zwischen beiden Eingängen gleich null.
In der Schaltung unseres nicht-invertierenden Verstärkers ist der Ausgang nicht mehr direkt mit dem nicht-invertierenden Eingang verbunden. Die beiden Widerstände R1 und R2 bilden einen Spannungsteiler. Da beide Widerstände den gleichen Wert haben, ist es einfach, das Teilungsverhältnis zu bestimmen: Die Spannung am nicht-invertierenden Eingang ist die halbe Ausgangsspannung.
Was bedeutet das für unsere Verstärkerschaltung? Nun, das Prinzip ist immer noch dasselbe: Der stabile Zustand ist derjenige, in dem es keine Spannungsdifferenz zwischen den Eingängen der Operationsverstärker gibt. Der Unterschied ist, dass nun zum Erreichen dieses Zustandes die Ausgangsspannung doppelt so hoch sein muss wie die Eingangsspannung (Spannungsverstärkung von 2), da durch den Spannungsteiler die Spannung am nicht-invertierenden Eingang nur die Hälfte der Ausgangsspannung beträgt. Der Verstärkungsfaktor wird durch den Spannungsteiler bestimmt und kann mit der folgenden Formel berechnet werden:
\(A_v = 1 + {R1 \over R2}\)
Eine Sache noch: Ein Operationsverstärker ist kein Step-Up-Wandler. Ein Operationsverstärker kann eine niedrige Versorgungsspannung nicht in eine höhere Spannung umwandeln. Er kann das Signal nur dann um den angegebenen Verstärkungsfaktor verstärken, wenn die Versorgungsspannung hoch genug ist. Ist sie das nicht, geht der Verstärker in die Sättigung. Die Ausgangsspannung kann nicht weiter erhöht werden und das Ausgangssignal wird nach oben hin abgeschnitten. Wie wir aus dem letzten Teil dieses Projekts wissen, ist die maximale Ausgangsspannung des LM358 etwa 1,5 V kleiner als seine Versorgungsspannung. Das ist auch der Grund, warum wir beim letzten Mal die zusätzliche 9-V-Batterie verwendet haben. Um eine Ausgangsspannung von 5 V zu ermöglichen, benötigten wir eine höhere Versorgungsspannung für den Operationsverstärker. Diesmal werden wir zwei verschiedene Schaltungen betrachten, eine mit 9 V Versorgungsspannung und eine mit 12 V. Je höher die Versorgungsspannung des Operationsverstärkers ist, desto höher ist die erreichbare Spannungsverstärkung.
Beginnen wir nun mit dem Aufbau der eigentlichen Schaltung. Wir werden die Verstärkungsschaltung von oben verwenden, die uns eine Spannungsverstärkung von 2 liefert. Wir müssen diese Schaltung zweimal aufbauen: einmal für die Verstärkung des erzeugten Signals und einmal für unsere künstliche Massereferenz. Lass und direkt anfange und die komplette Schaltung und die erforderlichen Änderungen am Code ansehen. Wir beginnen mit 9 V Versorgungsspannung und werden uns dann schauen, was möglich ist, wenn wir die Versorgungsspannung auf 12 V erhöhen. Auch diesmal kannst du wählen, ob du das MCP4725-Modul oder die PWM-DAC-Schaltung zur Erzeugung der Sinusschwingung verwenden möchten.
Schauen wir uns an, was wir für die 9 V Schaltung benötigen. Da wir uns für eine Verstärkerschaltung mit einer Verstärkung von 2 entschieden haben, müssen wir vorsichtig sein. Der Versuch, die von der Signalerzeugungsschaltung ausgegebenen 5 V einfach mit dem Faktor 2 zu verstärken, ist natürlich zum Scheitern verurteilt. Wenn wir 5 V mit 2 multiplizieren, erhalten wir 10 V. Das ist jedoch bei einer Versorgungsspannung von 9 V nicht möglich. Wir könnten dieses Problem lösen, indem wir den Verstärkungsfaktor der Verstärkerschaltung verringern. Wir werden jedoch eine alternative Methode wählen: Wir begrenzen den Ausgangsspannungsbereich unserer Signalerzeugungsschaltung in Software.
Wie passen wir den Code für die Versorgungsspannung von 9 V an? Die maximale Ausgangsspannung unseres Operationsverstärkers bei 9 V beträgt 7,5 V. Die Spannung einer 9-V-Batterie ist jedoch nicht immer 9 V. Sie kann auch geringer sein, wenn die Batterie nicht voll geladen ist. Die Wahrheit ist, dass unsere Schaltung auch nicht gerade besonders effizient und stromsparend ist. Selbst wenn wir eine frische 9-V-Batterie anschließen, wird die Spannung nicht sehr lange bei 9 V bleiben. Wenn wir wollen, dass die Schaltung tatsächlich funktioniert, sollten wir sie für eine niedrigere Ausgangsspannung wie 7 V oder weniger auslegen. Wenn wir das tun, stoßen wir auf ein weiteres Problem: Wenn wir weiterhin unsere 2,5 V, die auf 5 V verstärkt werden, als Masse-Referenz verwenden, ist die Amplitude auf 2 V begrenzt. Wir sollten eine andere Spannung als Massereferenz verwenden. Glücklicherweise haben wir dieses Problem bereits im letzten Teil dieses Projekts gelöst. Für die 5 V Schaltung haben wir auch die Massereferenz auf eine andere Spannung gelegt. Wir haben einen der 220 Ω-Widerstände gegen einen 120 Ω-Widerstand ausgetauscht, wodurch sich eine Spannung von ungefähr 1,75 V ergibt, was nach der Verstärkung 3,5 V entspricht.
Im Bild unten siehst du die komplette Schaltung und den angepassten Code zur Erzeugung der Sinuswerte. Der neue Code erzeugt eine Sinusschwingung zwischen 0,5 V und 3,0 V. Verstärkt entspricht dies einer Sinusschwingung zwischen 1 V und 6 V. Die Amplitude beträgt dann 2,5 V.
// Precalculate Sine Values between 0.5 V - 3.0V (25.5 - 153)
for(int i = 0; i < steps; i++) {
voltages[i] = sin(i*3.14*2/signalsteps) * 63.75 + 89.25;
}
Im Bild unten kann man sehen, wie das erzeugte Signal auf einem Oszilloskop aussieht. Die auf dem Oszilloskop angezeigte Amplitude ist etwas höher, aber das liegt nur am Rauschen, das durch das von mir verwendete Netzteil erzeugt wird.
Bei der Verwendung einer 9 V Batterie als Spannungsversorgung konnten wir feststellen, dass die gewählte Spannungsverstärkung von 2 etwas zu hoch ist. Wir mussten die Amplitude der erzeugten Sinuswelle in der Software reduzieren. Wenn wir jedoch eine 12 V Spannungsversorgung verwenden, ist die Situation besser.
Im Bild findest du die Schaltung für 12 V. Sie verwendet 5 V als Massereferenz für den Wechselstromteil der Schaltung und der Code wurde so angepasst, dass eine Sinusschwingung mit einer Amplitude von 3,5 V erzeugt wird. Wir verwenden auch hier nicht den vollen Spannungsbereich mit einer Amplitude von 5 V nach Verstärkung, da wir verhindern müssen, dass die Sinuskurve unten abgeschnitten wird. Es bleibt bei der Tatsache, dass der Operationsverstärker nicht sonderlich viel Strom aufnehmen kann, wenn die Spannung zu nahe an Masse liegt. Der Grund, warum ich den Spannungsbereich noch ein wenig mehr einschränke und 1,5 V statt 1 V als minimale Ausgangsspannung verwende, ist, dass der Strom, der zu unserer 220 Ω Last fließt, steigt, wenn wir die Amplitude unserer Sinuswelle erhöhen. In unserem 12 V Beispiel ist der Strom, der beim Minimum der Sinusschwingung fließt, \(I = {{5 V - 1,5 V} \over 220 Ω} \approx 16 mA\). Bei nur 1 V über der Masse des Operationsverstärkers ist das Maximum des Operationsverstärkers mit 10 mA zu gering.
// Precalculate Sine Values 0.75 V - 4.25 V (38.25 - 216.75)
for(int i = 0; i < steps; i++) {
voltages[i] = sin(i*3.14*2/steps) * 89.25 + 127.5;
}
Und so sieht das erzeugte Signal auf dem Oszilloskop aus:
Wir konnten die Amplitude der Sinusschwingung weiter erhöhen. Eine noch höhere Ausgangsspannung können wir erreichen, indem wir die Versorgungsspannung erhöhen und die Widerstände in der Verstärkerschaltung austauschen, um einen größeren Verstärkungsfaktor zu erreichen. Beachte jedoch, dass die Versorgungsspannung für den Arduino Uno 20 V nicht überschreiten sollte. Die empfohlene maximale Versorgungsspannung beträgt 12 V und genau dafür haben wir diese zweite Schaltung aufgebaut.
Mit der externen Stromversorgung und der neuen Verstärkerschaltung konnten wir ein Wechselstromsignal mit einer Amplitude von 3,5 V und einer Effektivspannung von etwa 2,5 V erzeugen. Durch die Verstärkung der Spannung konnten wir die starke Einschränkung des Spannungsbereichs unserer vorherigen Schaltung überwinden. Nun können wir versuchen, den maximalen Ausgangsstrom durch eine externe Push-Pull-Stufe weiter zu erhöhen. Dies wird das Thema des nächsten Teils dieses Projekts sein.