Strom-, Spannungs- und Leistungsmessung für 115-V-Wechselstromkreise

Ich versuche, Spannung, Strom und Leistung mit einem Arduino (Due) für Überwachungs- und Diagnoseanwendungen zu erfassen. Um einen einigermaßen guten Input zu erhalten (besser als Kill-A-Watt), habe ich ein AC-Sensing-Front-End für den Arduino entworfen. Da dies mein erstes Design ist, bitte ich die Community, mal reinzuschauen und mir zu sagen, ob das Ganze Sinn macht und funktionieren würde. Wenn das Ganze Sinn macht und funktioniert, werde ich es in meinen Blog stellen, damit andere Leute die Idee nutzen können.

Geben Sie hier die Bildbeschreibung ein

So funktioniert der beigefügte Schaltplan:

  1. Für Spannung. TR1 isoliert das Gerät vom Wechselstrom und verringert die Spannung auf 6,3 V RMS. Dies wird durch R7 und R8 geteilt und das Signal wird durch IC2A gepuffert, durch R2 und R1 verschoben und dem Sample-and-Hold-Verstärker SMP04 und dann dem ADC zugeführt.

  2. Für Strom verwende ich den LEM LTSR15-NP Hall-Effekt-Wandler. Das Signal wird erneut geteilt (möglicherweise besteht keine Notwendigkeit), gepuffert und verschoben und an das S&H-IC gesendet.

  3. Zur Stromversorgung verwende ich den analogen Multiplikator AD835, dessen Ausgang zum S&H IC geht.

Das S&H-Signal wird vom Arduino erzeugt.

Version 2: Danke für die Lösung meiner Fehler. Hier mein zweiter Versuch:

Geben Sie hier die Bildbeschreibung ein

Version 3: In Version 2 habe ich die Strombehandlung wie gelehrt behoben und dann etwas Dummes mit der Spannungssignalverarbeitungsschaltung gemacht. Das ist jetzt Version 3 wo ich den Rat von Techdude befolgt habe:

Geben Sie hier die Bildbeschreibung ein

Antworten (1)

Haufen Probleme hier.

Sie können den LTSR15-NP nicht so betreiben - sein 0-V-Versorgungsstift muss @ Massepotential sein, um seine Interna ordnungsgemäß mit Strom zu versorgen. Sein Ausgang Vout ist bereits auf seinem Vref für 0-Strom, 2,5 V +/- 0,025 V, sodass hier keine Verschiebung erforderlich ist. IC1A und sein C2/R5/R6 werden also nicht benötigt*.

LTSR15-NP stellt auch seine Vref als Ausgang bereit, und Sie sind gut beraten, diese als Ihre systemweite Vref zu verwenden, bis hin zum Vref-Eingangspin des Arduino. Lassen Sie dies Ihre Referenzspannung sein, da dies besser ist, als die standardmäßige 5-V-Vcc-Versorgungsschiene als Referenz für analoge Messungen zu verwenden (da sie sich ändert, erhalten Sie eine schlechte Genauigkeit und eine noch schlechtere Langzeitwiederholbarkeit).

Der Vout des LTSR15-NP sollte daher 2:1 spannungsgeteilt sein (z. B. R3 = R4 = 10 k), so dass 0 Ampere = 1,25 V, & Vollausschlag +ve = 2,5 V, & Vollausschlag -ve = 0 V.

IC2A fungiert nicht als Puffer, sondern lediglich als Pegelumsetzer, um Ihren "0-Volt-Kreuzungspunkt" auf die Hälfte von Vcc zu bringen. Wieder würde ich stattdessen den Vref-Ausgang von LTSR15-NP in diesen Pegelumsetzer [Bearbeiten:] über einen 2: 1-V-Teiler, ein weiteres Paar von 10 k, verwenden, sodass der 0-Volt-Wechselstrom-Kreuzungspunkt bei 1,25 V liegt. Dann würde ich den IC1A als tatsächlichen Puffer in Spannungsfolgeranordnung wiederverwenden.

Wiederholen Sie dann Ihre R7 / R8-Berechnungen, sodass 150 VAC (vorausgesetzt, Sie befinden sich in einem 110/120-VAC-Netzsystem) auf der TR1-Primärseite zu nicht mehr als [bearbeiten:] 2,5 Vpp führen, vorzugsweise etwas weniger. Setzen Sie dann einige Schottky-Dioden auf den R7 / R8-Teilerknoten (vor dem Vfollower-Operationsverstärkereingang) auf Vcc und auf Masse (dh beide normalerweise in Sperrrichtung vorgespannt), um Spitzen zu klemmen.

Außerdem sind Sie nur an 50/60 Hz interessiert, daher sollten Sie höhere Frequenzen so weit wie möglich herausfiltern (Abtasttheorie, Nyquist usw.), da sich sonst das Rauschen (inhärent in der Wechselstromverteilung) nicht nur auswirkt Ihre Messungen direkt, aber das Rauschen über Ihrer Abtastfrequenz. wird auch in Ihren interessierenden Sampling-Frequenzbereich zurückgefaltet. Fügen Sie diesen beiden Spannungsteilerknoten mit entsprechend berechneten RC-Zeitkonstanten Obergrenzen hinzu, um beispielsweise bei 100-200 Hz abzurollen. Führen Sie hier Ihre Widerstandsleistungsberechnungen durch!

Legen Sie 100 nF (0,1 uF) Keramikkappen ("Entkopplungskappen") über die Stromversorgungsstifte aller Ihrer Chips [Bearbeiten: und auf den Vref-Ausgang des LTSR15-NP].

Ich vermute (hoffe), dass das IEC-Netzanschlusssymbol nur ein Platzhalter für Ihre externe Verdrahtung ist, die die Last damit in Reihe schaltet, sonst messen Sie nur den Strom / die Leistung Ihres eigenen TR1 :).

Außerdem könnte es "als Übung für den Schüler" interessant sein, die V- und I-Multiplikation selbst im Arduino-Code durchzuführen und mit der Ausgabe des AD835 zu vergleichen :)

Und alle zutreffenden Warnungen für die Arbeit mit Netzspannungen gelten - das ist wirklich gefährliches Zeug. Wenn Sie es noch nie getan haben, suchen Sie Hilfe von jemandem, der es tut. Ich würde dringend empfehlen, während der Entwicklungsphase mit einem Fehlerstromschutzschalter zwischen Ihnen und der Netzsteckdose daran zu arbeiten. Fügen Sie eine Sicherung hinzu. Isolieren Sie immer alle Netzleitungen, sodass menschlicher Kontakt unmöglich oder zumindest unwahrscheinlich ist.

Zur Sicherheit während der anfänglichen Entwicklung und Fehlersuche können Sie einen Abwärtstransformator verwenden, um 18 VAC zu sagen ... denken Sie nur an die Skalierungsänderungen, wenn Sie eine Verbindung zum echten Netz herstellen. :-)
Und damit der Arduino diese externe Referenzspannung (über den LTSR15-NP verdrahtet) anstelle seiner internen Referenz verwendet, fügen Sie hinzu: analogReference (EXTERNAL); zu Ihrem Setup ();.
@Techydude, habe ich deine Korrekturen richtig verstanden? Dies ist meine zweite Überarbeitung (bzgl. Frequenzfaltung muss ich nachdenken/lesen/hängt von der Last ab). Ok, ich kann hier keine Bilder einfügen, also werde ich meine ursprüngliche Frage bearbeiten.
Ihr Umgang mit Stromwandlern ist besser, aber die Seite der Spannungsmessung ist noch nicht ganz so weit. Erstens schwebt die TR1-Sekundärseite derzeit, sodass Sie am R7 / R8-Knoten nichts (Sinnvolles) messen - ich würde IC2A wieder in die Anordnung bringen, in der Sie es hatten (und was ich fortan sage, bezieht sich auf diesen ursprünglichen Schaltplan). mit dem Ausgang des Operationsverstärkers an der Unterseite von TR1 sekundär; aber Pin3 (nicht invertierender Eingang) ist mit der Hälfte von Vref verbunden (dh Vref über R1/R2 = 10k/10k an Masse, Mitte mit IC2A-Pin3 verbunden). Dann...
Gehen Sie dann zurück zu Ihrem 2. Schaltplan und lassen Sie den R7 / R8-Knoten mit den 2 Schutzdioden in IC1A-Pin3 gehen (und R9 / R10 herausnehmen). Die Dioden müssen jedoch beide nach oben zeigen (in Vorwärtsrichtung vorgespanntes GND zum Signal und in Vorwärtsrichtung vorgespanntes Signal zur +5-Schiene). Ich mache das nur in meinem Kopf, also mal sehen, wie das aussieht, dann können wir reparieren, was übrig bleibt :)
@Techydude: Hey danke nochmal. Ich verstehe, was ich falsch gemacht habe und wie Sie das zum Laufen bringen. Ich habe noch eine Frage: In einem früheren Kommentar sagten Sie, dass IC2A für die Spannungsverschiebung konfiguriert ist, aber kein analoger Puffer ist. Dann hast du mich dazu gebracht, IC1A als Spannungsfolger zu verwenden. Aber ist es nicht so, dass wir jetzt zwei Spannungsfolger haben: IC2A ist sowohl Spannungsfolger als auch Spannungswandler und IC1A ist Spannungsfolger, nur weil wir einen Ersatz-Operationsverstärker im Paket haben? Nicht, dass es wichtig wäre, aber ich möchte mir vorstellen, wie die Elektronen fließen :)
hey - ich glaube, ich habe mich zwischen den 2 Schaltplänen verwechselt, ich glaube, zwei verschiedene Gedankengänge kollidierten! ich habe gerade keine zeit, werde mir das aber in den nächsten 24 stunden genauer anschauen.
Entschuldigen Sie die Verzögerung bei der Rückmeldung. OK, also bin ich zwischen dem ursprünglichen und dem zweiten Diagramm verwechselt worden - Hirnfurz. In Bezug auf Diag#3: Grundsätzlich wird der gesamte IC2A-Operationsverstärkerabschnitt (einschließlich R1, R2 und C7) nicht benötigt! Verbinden Sie einfach die Unterseite des Transformators mit Masse und führen Sie den R7/R8-Knoten in den IC1A-Puffer (Spannungsfolger). Die D1/D2-Dioden sollten sich auch auf diesem R7/R8-Knoten befinden, um alles außerhalb des Bereichs von 0 bis Vcc +/- dem Diodenabfall zu klemmen.
@Techydude: OK, aber wenn ich IC2A + R1, R2 & C7 entferne, bekommt der ADC nicht einen Sinus mit einer Amplitude von -1,25 bis +1,25. Ich dachte, ich brauche R1 und R2, um die Konstante ADCREF / 2 zum Ausgang des Transformators hinzuzufügen, damit ich 0 bis 2,5 am Eingang des ADC haben kann?
nein, wenn Sie die „Unterseite“ des Transformators an Masse binden, ist das Ihre Null-Volt-Referenz, dann schwingt die „Oberseite“ des Transformators zwischen 0 und etwa 11 Volt, und der R7 / R8-Teiler skaliert das auf 0 bis 2,5 V (für einen AC-Eingang auf der Primärseite von etwas über 150 V). Wenn Sie den mittleren "Mittelabgriff" des Transformators an Masse gebunden hätten , würden entweder oben oder unten + ve & -ve gehen. Da die Sekundärseite des Transformators vollständig von jeder anderen Referenz (z. B. Netzerde) isoliert ist, können Sie den Transformator beliebig anschließen.
@Techydude: Was Sie sagen, macht Sinn, aber warum verwendet dieser Artikel dann openenergymonitor.org/emon/buildingblocks/… zwei 470K-Widerstände, um eine Vorspannung hinzuzufügen?
Es tut mir leid, ich habe Sie wirklich auf der Spannungsseite der Dinge auf den Gartenweg geführt - ich sollte hier spät in der Nacht keine Fragen beantworten :), ich glaube, ich habe mir irgendwo einen (unsichtbaren) Brückengleichrichter vorgestellt, der alles hält 'über Null'. Ja, die OEM-Anordnung ist korrekt, wobei ein Operationsverstärker als „Offset“ verwendet wird, und dann mein Vorschlag, den gemessenen Knoten mit einem anderen Operationsverstärker zu puffern, obwohl mein zweiter Operationsverstärkerpuffer wahrscheinlich optional ist, aber ich würde ihn trotzdem verwenden es als Teil Ihrer Rauschfilterstufe (ursprünglich erwähnt).
Also hier: openenergymonitor.org/emon/buildingblocks/… , die einzige Änderung, die ich vornehmen würde, wäre die Verwendung der 2,5-V-Referenz (aus dem Strom-TX) anstelle von Arduinos 5-V-Referenz - stattdessen verwenden Die 2,5-V-Vref Ihres Stromsenders durch einen Teiler, um 0,5 Vref in den + ve-Operationsverstärkereingang zu bekommen. Dann, wo sie 100k/10k haben (Sie 100k/27k), haben Sie diese 2 in Sperrrichtung vorgespannten Dioden, um Spitzen zu klemmen. Dann der optionale Spannungsfolger des zweiten Operationsverstärkers (der sich für die Rauschfilterung als nützlich erweisen könnte).
@Techydude: Tausend Dank! Ich habe viele Dinge gelernt. Ich wünschte, ich könnte dir eine Flasche von etwas schicken. Ich bereite jetzt die Platine vor und wenn ich sie in 2-3 Wochen bekomme, werde ich Sie wissen lassen, wie sie funktioniert. Kann auch die ganze Erfahrung bloggen - wird auf Ihre Stackexchange-Seite verweisen, damit Sie Ihre Anerkennung für das Unterrichten erhalten.
lol, keine Sorge, tut mir leid, dass ich dich ein bisschen in die Irre geführt habe. Ich würde dem 100k/27k-Knoten immer noch eine Obergrenze hinzufügen, damit Sie eine Rauschfilterung mit höheren Frequenzen durchführen können. Es ist ideal, den Footprint dort auf der Leiterplatte zu haben, auch wenn Sie ihn am Ende nicht wollen / verwenden / brauchen. Gleiches gilt für den R3 / R4-Knoten, auch dort eine Erdungskappe. beides, damit Sie Sachen abrollen können, die über Ihrer interessierenden 50/60-Hz-Frequenz liegen. Obwohl Sie es nicht zu niedrig einstellen möchten, können die ersten paar Harmonischen bei einigen Lasttypen nützliche Informationen vermitteln, aber alles über, sagen wir, 500 Hz wird nicht nützlich sein und tatsächlich im Weg stehen.