Skalierungsspannung für Arduino Analog In, Beyond Voltage Dividers


16

Ich habe kürzlich einige faseroptische Biegesensoren gebaut und möchte die Werte, die ich von ihnen erhalte, über ein Arduino in einen Computer lesen. Ich messe das Licht mit dieser Fotodiode von Industrial Fiber Optics . Derzeit gebe ich die LED am anderen Ende sowie die Fotodiode 2,2V. Meine Frage hat damit zu tun, dass die von einem Multimeter an der Fotodiode gemessenen Spannungsschwankungen linear sind, aber eher klein, da sich die Faser verformt, auch ganz radikal. Wenn die Faser gerade ist, schwebt die Spannung abhängig von der Faser (es ist schwierig, sie identisch zu bewerten) beispielsweise um 1,92 V, und wenn sie gebogen wird, steigt sie auf beispielsweise 1,93-1,94 V an. Ich mache mir keine Sorgen, dass die Spannungen identisch sind, da ich sie in der Software skalieren kann.

Was mich beunruhigt, ist der Verlust der Auflösung, wenn ich mit dem Arduino A / D mache. Wenn meine Spannungsschwankungen in der Größenordnung von 10 mV liegen, quantisiert der 10-Bit-A / D des Arduino dann nicht das Beste, selbst wenn ich die Spannung mit einem Spannungsteiler auf 5 V hochsetze? Was ich suche, ist ein analoger Skalierer. Wie kann ich diesen Bereich zwischen 1,92 und 1,94 ausdehnen, um den gesamten Bereich von 0 V bis 5 V abzudecken, damit ich den gesamten Bereich des Arduino A / D nutzen kann?

Ich habe das Gefühl, dass dies eine in der Elektronik weit verbreitete Aufgabe sein muss, aber ich habe es nie offiziell studiert, daher gehen mir viele Dinge verloren.

(Vielleicht denken Sie, wie Davr, "warum verwenden Sie Lichtwellenleiter für die Biegesensorik? Warum erwarten Sie eine Spannungsänderung, wenn die Faser gebogen wird?" Der Trick besteht darin, die Ummantelung auf einer Seite des Lichtwellenleiters zu entfernen Wenn das Kabel von der Rille weggebogen wird, wird noch mehr Licht aus dem Kabel gelassen, was zu einem Spannungsabfall im Empfänger führt und umgekehrt.)


Würden Sie so freundlich sein, einen Schaltplan Ihres Empfängers zu zeigen? Liefern Sie die Vorspannung von 1,9 V?
Endolith

Wenn Sie den Schaltplan für den Empfänger selbst meinen, habe ich auf das Datenblatt oben verlinkt. Hier ist es wieder: i-fiberoptics.com/pdf/IFD91.pdf Wenn Sie meinen, wie ich es angeschlossen habe, können Sie auf dem Foto sehen. Der Empfänger ist der Schwarze. Ich gebe 2,2 V (auf dem Foto ist es eine Li-Ionen-Batterie) über das rote Kabel an die Seite des Empfängers mit dem orangefarbenen Punkt und messe die Spannung über dem Widerstand, der gegen Masse geht Die andere Seite.
Terrasse

Antworten:


11

Wenn ich das richtig verstehe, möchten Sie in der Lage sein, eine 10-mV-Variation über ein 1,9-V-Signal zu "lesen"?

Wenn dies der Fall ist, würde ich zwei getrennte Stufen vorschlagen. Der erste ist ein Fotodiodenverstärker (Seite 9 ist der Standard für Schaltungen). Dies hilft dabei, den Strom Ihrer Fotodiode in Spannung umzuwandeln.

Die zweite Stufe wird ein Instrumentenverstärker sein, wie die INA-Familie von Texas Instruments (die beste, aber auch teuer sein kann). Auf diese Weise können Sie das Gleichtaktsignal (in diesem Fall 1,9 V) entfernen. Sie können dem Instrumentenverstärker auch eine Verstärkung hinzufügen oder am Ende einen einfachen Operationsverstärker in einer nicht invertierenden Konfiguration hinzufügen, um die Verstärkung zu verbessern Ihr Signal bis zu den notwendigen 5 V.

Ich sage nicht, dass es perfekt sein wird, aber ich denke, das ist ein guter Anfang.

Abschließend mag ich Davids Vorstellung über die Klemmen, obwohl diese zu Messfehlern am A / D-Wandler führen können. Was jedoch wichtiger ist, ist, wenn Sie es schwingen können, versuchen Sie einen besseren Operationsverstärker als den 741. Diese sind üblich, aber die technischen Daten sind schrecklich. Die Offset-Spannung von 3 oder 4 mV an den Eingangsklemmen kann ein kleines Signal, wie Sie es zu messen versuchen, durcheinander bringen.

~ Chris Gammell


1
Sie brauchen keinen Instrumentenverstärker. Ein einfacher Diff-Verstärker reicht aus. Sie benötigen jedoch eine konstante 1,9-V-Versorgung als Referenz. Ich vermute, so etwas existiert bereits in der Schaltung als Vorspannung für den Sensor. Es wäre hilfreich, einen Schaltplan zu haben. Nachdem Sie die Vorspannung entfernt haben, müssen Sie erneut eine Vorspannung hinzufügen, um sie zwischen dem 0- und 5-V-Bereich des ADC zu erhalten.
Endolith

1
Ich stimme zu, dass Sie keine brauchen, aber es ist eine gute Idee. Ein Instrumentenverstärker ist nur ein Diff-Verstärker mit Puffern davor (manchmal mit zusätzlichen Widerständen für die Verstärkung). Wenn Sie nur einen Diff-Verstärker verwenden, sind Sie den Widerständen in Ihrem Diff-Verstärker ausgeliefert. manchmal so niedrig wie 1K. Wenn er versucht, etwas zu messen, kann diese hohe Impedanz (aus den Puffern eines iAmp) wirklich helfen (dh es fließt kein Strom in das Messgerät).
Chris Gammell

12

Signalkonditionierung in diesem Sinne ist äußerst verbreitet. Sie möchten einen Verstärker verwenden, um diesen 10-mV-Bereich (zum Beispiel) auf den gesamten 0-5-V-Bereich des Arduino auszudehnen. Dies kann mit Operationsverstärkern wie dem LM741 erfolgen. Möglicherweise möchten Sie auch eine "Spannungsklemme" (z. B. zwei Zenerdioden) am Ausgang Ihres Signalumformers / Eingangs in den ADC verwenden, um sicherzustellen, dass der Wert 5 V nicht überschreitet. Wenn Sie sich online in den Datenblättern von Operationsverstärkern und / oder Signalkonditionierungsschaltkreisen umsehen, sollten Sie Anleitungen finden, um genau das zu finden, wonach Sie suchen.


4

Schauen Sie sich die Kombination aus einem Differenz-PGA (Verstärker mit programmierbarer Verstärkung) und einem DAC an, wobei der Sensorausgang auf den "+" - Eingang und der DAC auf den "-" - Eingang geht. (Oder etwas Integriertes, das Ihnen äquivalente Funktionen bietet.) Schauen Sie sich das Signal mit niedriger Verstärkung an, ermitteln Sie den Offset, legen Sie diese Spannung an den DAC und drehen Sie die Verstärkung hoch.

Das PGA308 von TI scheint eine gute Lösung zu sein.

Wenn Sie eine kostengünstigere Lösung wünschen, verwenden Sie einen Differenzverstärker mit fester Verstärkung (der Standard-4-Widerstand + Operationsverstärker) + einen stabilen, leisen 8-Bit-DAC (Stabilität / Rauschcharakteristik wichtiger als Genauigkeit) Der Sensorausgang am "+" - Eingang des Differenzverstärkers und der DAC-Ausgang am "-" - Eingang.

Übung für den Leser: Zeigen Sie, dass Sie den Diff-Amp-Ausgang aus der Sättigung in einen linearen Bereich bringen können, indem Sie eine binäre Suchtechnik mit dem DAC verwenden und sicherstellen, dass die Verstärkung nicht größer als G1 = die volle ADC-Eingangsspannung ist. dividiert durch die Summe der nominalen Schrittweite des DAC und seiner DNL (Differential Nonlinearity). Ich würde wahrscheinlich den kleineren von (G1 / 2) und G2 verwenden, wobei G2 = die volle ADC-Eingangsspannung geteilt durch den Sensorausgangsspannungsbereich, den Sie interessieren.


Aus Zeitgründen viel zu ehrgeizig für mich, aber danke für den Vorschlag. Ich freue mich darauf, mich mit der analogen Signalaufbereitung für zukünftige Prototypen zu befassen.
Terrasse

Warum brauchen Sie einen DAC? Sie erzeugen damit nur einen DC-Offset? Das scheint ziemlich übertrieben.
Endolith

Ja. Der DAC ging davon aus, dass der DC-Offset über einen weiten Bereich geändert werden muss. Wenn Sie ein System mit einer Spannung haben, die sich nur über einen engen Bereich erstreckt (vorausgesetzt, Sie haben Ihre Toleranzanalyse richtig durchgeführt), können ein Widerstandsteiler und eine Referenz ausreichend sein, um eine Offset-Spannung zu erzeugen. Oder für ein bisschen mehr Komplexität ein Widerstandsnetzwerk + Multiplexer (was einige DACs sind). Ein DAC ist kein kompliziertes oder teures Gerät, wenn Sie keine ultrahohe Geschwindigkeit oder ultrafeine Auflösung benötigen.
Jason S

3

Die Verwendung von Glasfaserkabeln als Biegesensor ist möglicherweise eine schlechte Wahl. Ist es nicht der springende Punkt von Glasfaserkabeln, mit dem Sie Licht mit minimalem Verlust um Ecken biegen können?


2
Ja, aber wenn Sie die Jacke abstreifen und die Verkleidung mit einer Rasierklinge leicht von einer Seite abkratzen, ändert sich die Menge des durchgelassenen Lichts, wenn Sie die Faser biegen. Ein schönes Feature ist, dass Sie ein bidirektionales Signal erhalten. Wenn Sie sich von der Wertung entfernen, wird weniger Licht durchgelassen. Wenn Sie sich dagegen beugen, wird mehr Licht durchgelassen. Dazu müssten Sie zwei herkömmliche Biegesensoren verwenden. Sie sehen auch cool aus.
Terrasse

2

Sie benötigen zwei Dinge: Verwenden eines Differenzeingangs zum Vergleichen mit einem 1,9-V-Standard (oder in der Nähe davon) und einen Verstärker, um die Auflösung dieses Unterschieds zu erhöhen.

Für die besten Ergebnisse sollten Sie externe hochwertige Instrumentenverstärker oder Operationsverstärker verwenden. Sie können jedoch versuchen, im Mikrocontroller integrierte Funktionen zu verwenden. Der Arduino Mega (ATMega2560-Chip) und der Arduino Leonardo enthalten beide die Option für differenzielle, verstärkte Eingänge zum ADC direkt auf dem Chip. (Das Uno hat das nicht). Ein ATMega2560 kann mehrere Kanäle (gemultiplext) eines verstärkten Differential-ADC für mehrere Sensoren ausführen. Lesen Sie das Datenblatt, um festzustellen, welche Stiftkombinationen möglich sind. Es verfügt über eine 200-fache Verstärkungsoption, die die volle Auflösung von 1024 Schritten auf 25 mV überträgt. Sie müssen nur das 25-mV-Fenster dort positionieren, wo Sie es benötigen!

Das kann für Ihre Zwecke ausreichend rauschfrei sein oder auch nicht - es ist nicht so hochwertig, wie Sie es für mehr US-Dollar extern bauen könnten.

Der schwierigere Teil könnte darin bestehen, eine stabile und genaue 1,9-V-Referenz zum Vergleich zu erhalten.


Kam hierher, um das zu sagen. +1!
Nick Johnson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.