Ein Zweifel an der Anbindung der EMG-Schaltung an Arduino?

Also habe ich eine EMG-Erkennungsschaltung mit dem Instrumentenverstärker-Chip INA128 von TI wie folgt erstellt (sorry, wenn der Schaltplan schlecht aussieht):

http://i.stack.imgur.com/MgdY4.png

Und die Schaltung funktioniert für meine Anforderungen in Ordnung (obwohl leichtes Brummen und Hintergrundgeräusche vorhanden sind). Ich habe versucht, den V_out mit dem ADC von Arduino zu verbinden. Welche Schnittstellenschaltung wäre für diesen Zweck besser? Ich habe die hier gegebenen Anweisungen mit einer Operationsverstärker-Summierungsverstärkerlösung ausprobiert . Ich habe den Operationsverstärker LM741 in meiner Schaltung verwendet. Aber es war ein Misserfolg. Mein Ausgangssignal V_out variiert zwischen -100 mV und 100 mV.

Was haben Sie mit Ihrem Signal summiert?
@MathieuL: Entschuldigung für die späte Antwort. Ich summierte mit 5V DC Versorgung. Dachte, es würde das Signal klemmen.
Was hast du für die Versorgung des LM verwendet
@ MathieuL: Ich habe + 9 V und -9 V Doppelversorgung verwendet.
Ziehen Sie in Betracht, einen besseren Verstärker als den alten LM741 zu verwenden. Es gibt viele Beiträge auf dieser Seite und im Internet, die ihre Mängel erklären, daher werde ich hier nicht darauf eingehen.

Antworten (2)

Da Sie anscheinend einen LM741 haben, besteht die einfachste Lösung darin, nur eine 2-Wechselrichter-Konfiguration zu verwenden:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Für den ADC Ihres Arduino sollten Sie überprüfen, aber der maximale Eingang könnte 5 V betragen, wenn dies der Fall ist, können Sie R2 auf 20 K erhöhen und Sie erhalten einen Offset von 2,5 V.

+1 Weil ich denke, dass zumindest ein Teil des Problems darin besteht, dass der Arduino ADC 0 bis + 5 V akzeptiert. Die gestellte Frage erwähnt einen Bereich von -100 mV bis +100 mV, daher ist die negative Spannung ein Problem. Die einfache Verwendung eines Operationsverstärkers mit doppelter Versorgung behebt das nicht, daher ist der von Ihnen erwähnte Offset erforderlich.
Wenn ich mich nicht irre, ergibt Ihre Lösung ein Signal von + -100 mV + 5 V. Das Signal am ADC hat also einen Bereich von 4,9 V bis 5,1 V. Nicht der volle 5V-Bereich. Auch das Datenblatt des LM741 gibt eine minimale Betriebsspannung von +-10V an.
@Warloxx Sie haben Recht, das Datenblatt schreibt ein Minimum von 10 V für die Versorgung vor, aber wenn OP nur 9 V zur Hand hat, könnte er es versuchen. Die größte Auswirkung ist meiner Meinung nach, dass 9 V eine Nichtlinearität in die Verstärkung einführen könnten.
@Warloxx Ich denke, dass der LM358 für dieses Design besser geeignet wäre.
@ MathieuL Ja, der LM358 wäre besser. Da Ihre vorgeschlagene Lösung nur +9 V verwendet, bezweifle ich, dass sie überhaupt funktionieren wird (+-10 V Minimum sind immerhin 20 V). Wie wäre es mit dem Problem, dass der Ausgang nur im Bereich von 4,9-5,1 V liegt, oder irre ich mich hier?
@Warloxx ja, deshalb erwähne ich die 20k, mit 20k für R2 wird die erste Stufe zu einem Spannungsteiler von 1/2 für die 5V. Das Signal würde also zwischen 2,4 V und 2,6 V liegen. Sie haben Recht, wenn der ADC maximal 5 V aufnimmt, sieht der ADC das Signal in der positiven Phase nicht.
@MathieuL Okay mit 20k für R2 dann hast du technisch gesehen den Wert im Bereich des ADC. Bei einem 10-Bit-ADC und einer Vref von 5 V und einer Signaldifferenz von 200 mV erhalten Sie jedoch nur 2 ^ 10 Bit / 5 V * 0,2 V = 40,96 Bit Auflösung. Wenn das für dieses Signal ausreicht, dann funktioniert das.
@MathieuL Tolle Antwort. Zum Glück habe ich jetzt LM358 dabei. Ich werde diese Schaltung testen. Der Ausgangsbereich von 2,4 bis 2,6 V ist für mich sehr fein.

Die von Ihnen vorgeschlagene Schaltung sollte prinzipiell funktionieren. Das von Ihnen verwendete OP (LM741) benötigt mindestens ± 10 v Also, wenn Sie das gleiche verwendet haben ± 9 v Versorgung wie beim INA128, das kann der Fehler sein.

WARNUNG: MATH Für nur die Lösung siehe Schaltung unten.

Wenn nicht, ist hier eine Schaltung, mit der ich die + -100 mV mit der Formel von Ihrem Link in 0-5 V umwandeln würde

v 0 = ( v 1 R 2 R 1 + R 2 + v 2 R 1 R 1 + R 2 ) ( 1 + R 4 R 3 )

Sagen wir v 1 ist unser Eingangssignal und v 2 die Offset-Spannung. Wie Sie in der obigen Formel sehen können, addieren wir zuerst und multiplizieren dann mit dieser Schaltung, genau wie in der Mathematik. Um also ein positives Signal zu erhalten, fügen wir hinzu 100 M v zum Signal. Um dies zu erreichen, können wir einen Spannungsteiler mit der 5-V-Versorgung des Arduino erstellen.

v 2 = 5 v R 5 R 5 + R 6 = 100 M v

Mit einem Widerstandsrechner wie diesem erhalten wir die Werte für R5 und R6 wie folgt:

R 5 = 1 k Ω
R 6 = 22 k Ω + 27 k Ω

Wie Sie sehen können, wird R6 tatsächlich aus zwei Widerständen in Reihe erstellt, um das Verhältnis anzupassen. Nennen wir den zweiten Widerstand R7

R 6 = 22 k Ω
R 7 = 27 k Ω
v 2 = 5 v R 5 R 5 + R 6 + R 7 = 100 M v

Addieren Sie nun V1 und V2 ohne Gewichtung der Werte R 1 R 1 + R 2 Und R 2 R 1 + R 2 gleich sein müssen. Also muss R1 tatsächlich gleich R2 sein

Lassen Sie uns einen Wert für R1 und R2 wählen, sagen wir

R 1 = R 2 = 10 k Ω

Mal sehen, was wir jetzt haben:

v 0 = ( v 1 10 k Ω 10 k Ω + 10 k Ω + v 2 10 k Ω 10 k Ω + 10 k Ω ) ( 1 + R 4 R 3 ) = ( v 1 1 2 + v 2 1 2 ) ( 1 + R 4 R 3 ) = ( v 1 + v 2 ) 1 2 ( 1 + R 4 R 3 )

Also jetzt das ± 100 M v Signal wird um versetzt 100 M v zu einer Reihe von 0 200 M v wir müssen es ankurbeln 0 5 v

1 2 ( 1 + R 4 R 3 ) = 5 v 200 M v = 25
R 4 R 3 = 49

Mit dem obigen Rechner erhalten wir

R 4 = 330 k Ω
R 3 = 6.3 k Ω

Dies ist eigentlich keine perfekte Passform (3 % Rabatt), aber da Widerstände eine große Fehlerspanne haben können (5 %), ist es nahe genug. (Mit drei Widerständen geht es besser: R4=290k R3=10k||39k)

Jetzt haben wir endlich alles was wir brauchen. Endschaltung:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

ziemlich komplex erscheinen, ich denke, es ist einfacher, nur einen 2-stufigen Inverterverstärker mit beiden Einheitsverstärkungen zu verwenden.
oder vielleicht ein BJT-Spannungsfolger mit dem richtigen Offset
@MathieuL: Kannst du bitte bjt Spannungsfolger als Antwort schreiben?
@dexterdev Das Problem mit BJT, nachdem ich es nachgeschlagen habe, ist, dass es kein so großartiger Puffer ist.