Wie misst man Wechselstrom mit einem Mikrocontroller?

Ich möchte die Wechselstromleistung eines beliebigen allgemeinen Geräts wie Fernseher, Laptop usw. mit einem Mikrocontroller messen. Meine MCU ist ARM Cortex-M TM4C1233H6PM.

Ich verwende den ACS712-Stromsensor, um den Wechselstrom zu messen, und verwende dann einen Optokoppler, um ihn von meiner MCU zu isolieren. Danach wird es dem ADC meiner MCU zugeführt und sein Wert gemessen.

Mein Problem ist die Spannungsmessung. Ich habe keinen Zugang zu vielen Wandlern und Spannungsmess-ICs in meiner Gegend. Hier ist, was ich bisher habe, zusammen mit meinen Fragen dazu:

Verwenden Sie einen Transformator, um 0-220 V AC in 0-5 V DC umzuwandeln, und speisen Sie ihn dann mit einem anderen Optokoppler in den ADC meiner MCU ein. Aber meine Fragen sind diese:

1) Liegt meine gemessene Spannung nicht in einem kleineren Bereich (0-5 V DC) als mein in AC gemessener Strom und die Leistung wird falsch ausgegeben? Da meine Spannung jetzt in Gleichstrom gemessen wird, wie kann ich die Wechselstromleistung berechnen?

2) Wie kann ich die Nulldurchgänge und die Phasendifferenz (Theta) finden, um P = VIcos (Theta) sowohl in Strom als auch in Spannung zu messen?

Ich weiß, dass meine Fragen ziemlich lang erscheinen mögen, aber ich brauche wirklich Ihre Hilfe. Danke für jede Hilfe!

Müssen Sie den momentanen Stromverbrauch in weniger als 1/50 (oder 1/60) Sekunde messen? Oder würden Sie sich mit dem kontinuierlichen Stromverbrauch von beispielsweise einer Zehntelsekunde auseinandersetzen? Mit anderen Worten, ist das AC und die Nulldurchgänge etwas, mit dem Sie wirklich fertig werden müssen?
Ein Transformator allein erzeugt keinen Gleichstrom. Skalieren Sie den Wechselstrom auf 5 V Spitze-Spitze (Transformator), fügen Sie 2,5 V hinzu, probieren Sie mit Ihrem ADC. Multiplizieren Sie im Prozessor die Wechselspannung mit dem entsprechenden Faktor, um die wahre Wechselspannung zu erhalten.

Antworten (3)

Wenn Sie die Leistung von Geräten messen möchten, müssen Sie Signale digitalisieren, die Wechselspannungs- und Stromwellenformen darstellen. Sie sollten unbedingt eine gleichzeitige digitale Abtastung beider Größen mit einer Abtastrate von mindestens 1000 Mal pro Sekunde in Betracht ziehen, um ein gewisses Maß an Genauigkeit zu erreichen. Multiplizieren Sie jedes simultane Paar miteinander und mitteln Sie die resultierende Wellenform, um Ihnen Leistung zu geben.

Die Verwendung einer Gleichstromgröße zur Darstellung der Spannung sollte nicht als sinnvoll angesehen werden. Der Versuch, Effektivwerte für Spannung und Strom zu berechnen und dann zu versuchen, die Phasendifferenz durch Nulldurchgang zu messen, ist angesichts der harmonischen Natur von Stromwellenformen in vielen Geräten naiv. So messen Profis nicht die Leistung.

Leistung = Spannung x Strom, ob Gleich- oder Wechselstrom, analog oder digital abgetastet.

Ich verstehe was sie meinen. Wenn also meine Abtastfrequenz ein Vielfaches der Frequenz meines Wechselstromnetzes beträgt, erhalte ich immer noch eine ziemlich gute Annäherung an die Leistung, auch ohne P = VIcos (Theta) zu messen. Dazu muss ich in meinem Code einen Timer generieren Lesen Sie alternativ die Eingabe und berechnen Sie dann die Leistung und speichern Sie sie, damit wir sie später integrieren können. Ist das korrekt?
Die Messung von VIcos(Theta) erzeugt fast immer große Fehler, da der Oberwellengehalt der Stromwellenform bei Haushaltsgeräten normalerweise ziemlich schlecht ist. Sie müssen beide Eingänge gleichzeitig lesen, nicht nacheinander. Wenn Sie nur einen ADC und einen Multiplexer haben, dann besorgen Sie sich einen anderen ADC.

Die Antwort von Filo funktioniert nicht, wenn Ihr ADC keine negativen Spannungen messen kann. Sie könnten einen Transformator oder Spannungsteiler verwenden und dann einen Operationsverstärker verwenden, um einen DC-Wert hinzuzufügen.Geben Sie hier die Bildbeschreibung ein

Um die Wechselstromleistung zu berechnen, müssen Sie nur einen Faktor (Konstante) finden, damit Sie keine Probleme haben.

Um Nulldurchgänge zu finden, können Sie Schwellenwerte verwenden.

Ein Transformator wandelt Wechselstrom nicht in Gleichstrom um (Gleichrichter tut das). Verwenden Sie einen Transformator, um 230 VAC -> 5 VAC abzusenken. Fügen Sie einen Spannungsteiler (z. B. 47k + 47k) über die Sekundärwicklung des Transformators hinzu. Verbinden Sie ein Ende des Teilers mit der MCU-Masse und die Mitte des Teilers mit Ihrem ADC-Pin (Ihre MCU kann wahrscheinlich nur bis zu 3,3 V messen). In dieser Kombination sehen Sie Ihre 230 VAC als 2,5 VAC bezogen auf die MCU-Masse. Das kannst du ganz einfach mit ADC messen. Wenn Sie einen Transformator verwenden, benötigen Sie keinen weiteren Optokoppler.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Denken Sie daran, dass die meisten Optokoppler nichtlinear sind. Wenn Sie also die Spannung messen möchten, die von Ihrem Stromsensor kommt, müssen Sie einen linearen Optokoppler auswählen oder die Charakteristik abbilden und die Nichtlinearität in der Software korrigieren.

Ein weiteres Thema ist die Berechnung der genauen Leistung und des Leistungsfaktors aus Spannung und Strom.

Danke für deine Antwort. Es hat wirklich viel erklärt. Ist es für die genaue Leistung in Ordnung, wenn ich anstelle des Leistungsfaktors meine Frequenz (zur Berechnung von V & I) um ein Vielfaches auf die des Wechselstromnetzes erhöhe, oder würde dies aufgrund der Phasendifferenz immer noch die falsche Antwort geben?