Arduino Negativspannungsablesung mit positiver Masse

Ich versuche, Spannung und Strom eines Solarladereglers von Panel, Batterie und Last gleichzeitig mit meinem Arduino zu messen. Ich habe es geschafft, indem ich alle Negative zusammengebunden und als GND verwendet habe, aber wenn ich das tue, funktioniert der Laderegler nicht richtig und wenn ich in den Aus-Modus schalte, laufen die Lasten immer noch. Nachdem ich die Bedienungsanleitung weiter überprüft hatte, fand ich heraus, dass die positiven Eigenschaften zwischen Pan, Bat, Load geteilt werden. Dies wurde mit einem Multimeter bestätigt.

Also denke ich jetzt daran, das Plus der Batterie als GND-Referenz zu verwenden und dann alle anderen Spannungen zu messen (durch Spannungsteiler in Bezug auf GND). Die Spannungen sollten dann zwischen -17V bis 0V liegen.

Ich habe jedoch gelesen, dass die analogen Eingangspins keine negativen Spannungen lesen können, und in Bezug auf den positiven GND sind alle analogen Eingänge negativ.

BEARBEITEN: Ich dachte daran, einen Verstärker zu verwenden, um positive Masse in negative Masse umzukehren, was bedeutet, dass ich alle positiven Seiten der Spannungen messen könnte. Aber nachdem ich Antworten von euch erhalten habe, muss ich anscheinend keinen Verstärker verwenden und ein Spannungsteiler kann ausreichen. Ich habe derzeit einen 2-Widerstands-Spannungsteiler zwischen jedem analogen Eingang, +5-V-Quelle, Vmess eingebaut, den Sie im Diagramm unten sehen können.

Wenn dies funktioniert, sollte ich nach meinen Berechnungen bei -17 V 0,6 V am analogen Eingang sehen. @0V Ich sollte 4V am analogen Eingang sehen.

Ich würde mich über Feedback zu dieser Schaltung freuen, und unten im zweiten Bild habe ich auch ein Stück einer anderen Methode eingefügt, die von @jonk (danke) vorgeschlagen wurde, und würde gerne wissen, welche Vorteile Methode B) gegenüber Methode A hat )

Danke!

PS. Die Stromzähler sind dort anstelle von ACS712-Stromsensoren, die auch in analoge Eingangspins gehen.

Methode A)

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Methode B (BEARBEITEN: Diese Methode hat funktioniert, ich muss Methode A noch testen) danke @Jonk))

schematisch

Simulieren Sie diese Schaltung

Ich glaube der Schaltplan fehlt?
@jonk es sieht so aus, als wäre es für mich da. Kannst du es jetzt sehen? Wenn nicht, füge ich einfach einen Screenshot hinzu :)
Sind diese Widerstände Ihr Versuch, einen Spannungsteiler für Ihre analogen Eingänge bereitzustellen? Oder werden sie aus irgendeinem Grund von Ihrem Laderegler benötigt?
Ist -12 V auch der größte Wert, den Sie messen müssen? Oder kann diese Spannung noch negativer sein?
Mein Versuch, einen Spannungsteiler bereitzustellen. Der Spannungsabfall an jedem der 2 Widerstände sollte der Spannung von Panel, Last bzw. Batterie entsprechen - also habe ich den Teiler verwendet, um die Spannung auf etwas zu senken, das das Arduino eingeben könnte.
Ich würde bis zu -17 V max vom Panel vermuten. etwa -14 von Batterie & Last. Danke!
Können Sie es sich leisten, ein wenig Strom aus der Last zu ziehen, oder benötigen Sie hier einen High-Z-Eingang (DMM-ähnlich)?
Kann es sich leisten, Strom zu ziehen, muss ihn so schnell wie möglich herausholen. Also alles, was die Arbeit erledigen kann. Und dann wird danach optimiert :)

Antworten (1)

Wenn Sie Eingangsspannungen messen möchten, die sowohl negativ als auch positiv sein können, indem Sie einen Arduino-ADC verwenden, bei dem die analogen Eingangspins keine negativen Spannungen lesen können, können Sie den folgenden Typ eines Drei-Widerstands-Teilers in Betracht ziehen, der auf der linken Seite (rechts) gezeigt wird Seite, auf die wir zukommen werden):

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Der v ich Terminal geht zu dem, was Sie messen möchten und das v Ö Pin geht zu Ihrem ADC-Eingang (oder zu einem Pufferverstärker, wenn Sie es vorziehen).

Ihr Arduino ADC muss eine Eingangsimpedanz sehen, die kleiner als ist 10 k Ω , insgesamt. Mit der obigen Teileranordnung ist dies R ICH N = R ich + R P | | R G . Grob gesagt seit R P oder R G wird größer sein als R P | | R G , müssen wir nur machen R ich + R P < 10 k Ω .

Aber unter Berücksichtigung Ihres schlimmsten Falls v ich = 17 v und Stromversorgung von v C C = 5 v , das muss auch so sein R P < 5 17 R ich . Eine weitere Überlegung, die sich aus einer separaten Gleichungslösung ergibt R G schlägt vor, dass R P < 2 9 R ich . So R ich < 10 k Ω 1 + 2 9 . Das ist also unsere wichtigere Einschränkung. R ich 8.2 k Ω . Das ist ein Standardwert von R ich = 8.2 k Ω und ich habe dann einfach abgeholt R P = 1.8 k Ω auch als angemessener Richtwert.

Daraus lässt sich rechnen R G = v Ö R ich R P ( v C C v Ö ) R ich ( 17 + v Ö ) R P , wo Sie auswählen können v Ö Wenn v ich = 17 v . Es ist jedoch nicht linear. Wenn ich mir die Kurve ansehe, denke ich R G = 2.7 k Ω sieht gut aus.

Die Eingangsimpedanz ist jetzt 9.3 k Ω , das die erforderlichen Kriterien für den ADC erfüllt. Und bei v ich = 17 v Sie erhalten v Ö = 670 mV und bei v ich = 10 v Sie erhalten v Ö = 1490 mV und bei v ich = 0 v Sie erhalten v Ö = 2650 mV .

Im obigen Fall gehe ich natürlich davon aus, dass Sie Gründe teilen können.

Danke für die Antwort @jonk Das macht alles Sinn in Bezug auf die Impedanz und wie man die richtigen Widerstandswerte berechnet. Ich werde in Kürze auf meinem Arduino testen - wollte nur zuerst bestätigen, was ist der Zweck des Widerstands Rg zwischen gemeinsamem Plus -> v0? Könnte dieser Spannungsteiler nur mit Ri & Rp erreicht werden? Auch die +5 V, die vom Arduino bereitgestellt werden, werden sie in Bezug auf den Arduino GND bereitgestellt? Wenn wir also +12 auf den GND des Arduino legen, kann der Arduino immer noch +5 V in Bezug auf den GND liefern (und nicht wirklich -7 V), habe ich recht? Danke Kumpel!
@KenH R G Und R P Bilden Sie einen Widerstandsteiler, der die +5 V des Arduino-Netzteils auf etwas anderes herunterteilt - +3 V. Aber dies hat jetzt einen Thevenin-Widerstand von etwa 1.1 k Ω , gegen welche R ich funktioniert. Ich gehe davon aus, dass Sie den Arduino-Common auf den Laderegler-Common setzen, aber keinen anderen Teil der Netzteile miteinander verbinden. Legen Sie NICHT +12 auf den Arduino-Boden. Das ist hier nicht der Sinn!!
erstmal vielen dank für deine zeit kamerad! Ich habe ein paar Änderungen an meiner Frage gepostet, um zu verdeutlichen, woran ich etwas denke. Bitte beachten Sie die Diagramme. Erstens frage ich mich, ob der Spannungsteiler der ersten Schaltung ohne Rg funktionieren wird? Zweitens hatte ich als Reaktion auf Ihre +12-V-Warnung vor, den gemeinsamen Laderegler anzuschließen (was ~ +12 relativ zur negativen Seite ist). Ich denke jedoch, dass es in meinem Namen ein Terminologieproblem war. Kann ich den positiven Laderegler gemeinsam mit GND verbinden? Danke!
@KenH Ich nehme an, Sie verwenden ein netzbetriebenes Gerät mit +9 VDC, um die Spannungsregler des Arduino mit Strom zu versorgen, die dann +5 V für den Betrieb des Arduino liefern können. Und dass Sie dann Zugriff auf die +5-V-Versorgungsschiene des Arduino für die Widerstandsteiler haben. Ist das korrekt? (Oder ist die +9-V-Batterie, die ich dort sehe, ein Unfall?)
Sie haben Recht, @jonk. Ich verwende eine 9-VDC-Versorgung. Ich möchte das Arduino idealerweise mit der Batterie (vom Laderegler) über einen Abwärtswandler mit Strom versorgen. Aber ich dachte, es würde Probleme geben, es als Stromversorgung und auch GND zu verwenden. Hab ich recht? Oder kennst du auch einen Weg, das zu umgehen?
@KenH Es ist schwer zu wissen, was am besten ist, ohne weitere Details. Konzentrieren wir uns vorerst nur darauf und sehen, wie es herauskommt. Angesichts dessen, was Sie gesagt haben, ja, ich denke, dies wird angesichts Ihres letzten Schaltplans lesbare Spannungen erzeugen. Bevor Sie das ADC-Eingangskabel tatsächlich anschließen ... legen Sie ein Voltmeter von der gemeinsamen Masse (verwenden Sie dort die [-] -Leitung) an den Punkt, an dem alle drei Widerstände zusammenkommen (verwenden Sie hier die [+]-Leitung) und sehen Sie, welchen Wert du kommst dort hin. Verdrahten Sie den ADC-Eingang NICHT mit diesem Punkt, bis Sie ihn mit einem Voltmeter überprüft haben. Nur um auf Nummer sicher zu gehen. Es sollte einen positiven Wert anzeigen, wenn es so verdrahtet ist, wie ich es gesagt habe.
vielen Dank für die Hilfe. Ich messe jetzt Spannung und Strom und der Laderegler funktioniert einwandfrei, alle Panel-, Fledermaus- und Lastmessungen funktionieren einwandfrei. Danke! Eine letzte Frage, wenn Sie es vielleicht wissen - gibt es eine Möglichkeit, das Arduino auch mit derselben Batterie zu versorgen, die in der Schaltung gemessen wird, die wir besprochen / erstellt haben? - Außerdem habe ich eine Excel-Tabelle erstellt, die mir bei der Auswahl von Widerstandswerten hilft, die den Spannungsbereich maximieren und gleichzeitig die Impedanz unter 10 kOhm halten. Ich habe 2.2k für Rp, 8.2k & 8.2k für Rg & Ri gewählt. Das hält die Impedanz knapp unter 10 k und erhöht den Bereich von 2 V -> 3 V.
@KenH Vielen Dank, dass Sie sich die Zeit genommen haben, mir mitzuteilen, dass es in Ordnung ist, wie zuerst besprochen. So weit, wie einfach den Arduino mit Strom zu versorgen? Kann es eine 12-V-Quelle direkt in den Vcc-Eingang aufnehmen? Wie stark variiert diese Versorgung? Kann es jemals die Vcc-Eingangsspezifikationen überschreiten?
Die Bat-Spannung variiert zwischen 12 und 14 V. Kann ich einen Abwärtswandler verwenden und dann den positiven Ausgang an Arduino Vin und den negativen Ausgang an Arduino Gnd anlegen und dann immer noch den gesamten + gemeinsamen Laderegler an GND anschließen? Außerdem habe ich jetzt leider Schaltungsprobleme. Es ist Nacht hier und wenn das Panel mit dem Gesicht nach unten platziert wird, misst es ohne angeschlossenes Arduino etwa 0,4 V über die Klemmen mit Multimeter (gut). Wenn Arduino angeschlossen ist, misst es etwa -2 V. Die +5-V-Referenzspannung scheint also einen Einfluss auf Vpanel zu haben, selbst wenn das Panel nach unten zeigt. Werde weiter forschen!
@KenH Ja, ein Dollar könnte sinnvoll sein. Es lohnt sich, es zu testen. Es tut uns leid, von den neuen Ausgaben zu hören! Zumindest der Eingangswiderstand, R ich , kann einen gewissen Schutz Ihres Arduino-Eingangsstifts bieten !! Das ist ein guter Nebeneffekt. Freue mich auf neue Infos.
Ich habe die Schaltung gemäß Schema B in meinem OP angepasst. Da ich an Vx eine positive Spannung von etwa +2 V aufnahm (dh Vpanel war -2 V), dachte ich, dass eine gewisse Spannung von Vy über R3 abfiel und zu der unerwünschten positiven Spannung an Vx führte. Wenn wir also nach meinem Verständnis i2 reduzieren könnten, könnten wir die Spannung Vx reduzieren. Nachdem Sie Ihren 2,7-k-Widerstand durch einen 68-Ohm-Widerstand ersetzt haben (wodurch mehr Strom zur Erde fließen kann, aber die Eingangsauflösung von Arduino A1 auf 0,13 V reduziert wird). Vx bleibt im negativen dh. Vpanel bleibt positiv (was wir wollen).
PS. @jonk, der vorherige Kommentar bezieht sich darauf, wann das Panel ausgeschaltet ist. Darüber hinaus denke ich, wenn ich i2 daran hindern kann, durchzugehen, wenn Vx = 0 ist. Das heißt, in Ihrem Widerstands-Setup, wenn Vy > 2,65 V ist, kann ich den Vx auf den Bereich -17 -> 0 begrenzen. Und Vx muss nicht gehen Das Positive. Ich suche nach der Verwendung von Zenerdioden, um dies zu erreichen. Jeder Rat wird geschätzt - ich werde beitragen, wenn ich eine Lösung habe!