Hallo, ich befasse mich derzeit mit der Wechselstrommessung. Ich habe mir ein paar Sensoren des Typs "SCT-013-030" bestellt und diese sind heute eingetroffen. Das sind Nicht-invasive AC Stromwandler mit einem Messbereich von 30A , wobei der Ausgang 0-1V beträgt. Hat mit diesem Modell schon jemand gearbeitet? Also wenn ich das richtig verstehe, würde ja dann bei 30A - 1V anliegen, bei 10A - 1/3V. Sehe ich das richtig? Wenn das so ist, kann ich den Sensor (3,5mm Klinke Anschluss), einfach in eine 3,5mm Klinke Buchse anschließen und da dann den Spannungspin mit dem Arduino auswerten, oder brauche ich noch zusätzliche Widerstände, Kondensatoren oder ähnliches? Wie führe ich die Messung programmtechnisch vom Prinzip am besten durch? Mehrere male pro Sekunde messen und Mittelwert bilden, oder wie kann ich das möglichst genau abdecken? Gruß
Da der Sensor für AC ist, kommt auch eine 0-1V Wechselspannung raus. Wenn du ein Oszilloskop hast, schaue dir doch erstmal damit an, wie das Ausgangssignal aussieht.
Oszilloskop habe ich leider nicht, aber wenn Wechselspannung rauskommt, muss ich diese dafür ja dann gleichrichten. http://www.technik-fan.de/index.php/Open_Energy_Monitor So dann?
So dann... ja, aber nicht gleichrichten. Du entkoppelst deinen Sensor mit einem Kondensator, und hebst das Signal mit einem Spannungsteile auf genau die Hälfte der ADC Referenzspannung (Vref). Genau das sieht man auch auf dem "Converter Board" hinter deinem Link. Für den Kondensator nimmst du z.B. 4.7uF oder 10uF, und für die 2 Widerstände 100K. Mitteln deiner Messungen macht keinen Sinn, da Wechselspannung. Im Idealfall käme dabei genau Vref/2 raus. Du musst stattdessen mit einer möglichst hohen Samplingrate, oder einem entsprechend langen Samplingfenster die Spitzenwerte (high/low) ermitteln. Aus der Differenz dieser Werte lässt sich dann der Strom errechnen.
Ah, die Schaltung ist ja noch viel besser. http://openenergymonitor.org/emon/node/54 Zunächst wird eine Hilfsspannung von Vref/2 erzeugt, über einen Widerstandsteiler von 2x 10K. Diese Hilfsspannung wird über einen Kondensator gut abgestützt (z.B. 10K, ich würde noch 100n und 10n parallel schalten). Diese Hilfsspannung geht in deinen Sensor, und der Sensorausgang direkt auf den ADC. Dadurch reduziert man sämtliche Verzerrungen, dir durch einen Koppelkondensaltor entstehen könnten.
Sorry, der Stützkondensator hat natürlich nicht 10K, sondern z.B. 10uF.
Hi, nunja, meine erste Überlegung war es die Sinuskurve die ausgegeben wird eben möglichst oft abzutasten um einen möglichst genauen Wert daraus errechnen zu können, habe bis grade gedacht das wäre völliger Blödsinn gewesen ;D Was genau meinst du mit zusätzlich parallel schalten? Kannst du mir dies irgendwie mit da reinmalen oder ein Schaltbild oder ähnliches? Ich habe auch den Code vorliegen, der in diesem Projekt verwendet wird. Werde mich morgen mal daran setzen um zu sehen wie die das Softwareseitig abtasten bzw was die da genau machen. Code den derjenige benutzt ist hier zu finden: http://nopaste.info/119403c7c4.html
So, hier bin ich wieder. Die Elektronikbauteile habe ich leider erst ab Dienstag komplett zur Hand, deswegen habe ich mir das ganze mal aufgezeichnet und mir das angeschaut. Auf dem Schaltplan sollte man nun alles erkennen, so wäre es richtig? Das Diagramm zeigt den Ausgang der in den Arduinoeingang kommen würde. Als "Ersatzsensor" habe ich eine Wechselspannung von 1V eingebaut, die dem Sensor bei voller Auslastung zeigen würde. Wie man an der Sinuswelle sieht, ist diese um 2,5V nach oben verschoben und schwingt von 1,5V - 3,5V , also halt wie die 1V Wechselspannung die der Sensor einbringt. Dazu habe ich noch folgende Fragen: 1) Die Kondensatoren habe ich jetzt ganz simple parallel geschaltet, aber was genau soll das bringen? Damit erhöhe ich doch nur die Kapazität des "Gesamtkondensators" den ich dadurch erzeuge, könnte ich nicht einfach einen größeren einzelnd einbauen? 2) Das wäre nun alles was ich Hardwareseitig benötige für diese Messung? Den Rest setze ich dann Softwaremäßig durch eine möglichst hohe Abtastrate um und errechne mir dadurch die tatsächliche Spannung? (Vref/2 dann halt noch abziehen. Vielen Dank schonmal für eure Hilfe, so verstehe ich die Schaltung mitlerweile wenigstens :)
JumpY schrieb: > So, hier bin ich wieder. Die Elektronikbauteile habe ich leider erst ab > Dienstag komplett zur Hand, deswegen habe ich mir das ganze mal > aufgezeichnet und mir das angeschaut. sehr gut. > > Auf dem Schaltplan sollte man nun alles erkennen, so wäre es richtig? ja. > Das Diagramm zeigt den Ausgang der in den Arduinoeingang kommen würde. > Als "Ersatzsensor" habe ich eine Wechselspannung von 1V eingebaut, die > dem Sensor bei voller Auslastung zeigen würde. richtig so. > > Wie man an der Sinuswelle sieht, ist diese um 2,5V nach oben verschoben > und schwingt von 1,5V - 3,5V , also halt wie die 1V Wechselspannung die > der Sensor einbringt. > > Dazu habe ich noch folgende Fragen: > > 1) Die Kondensatoren habe ich jetzt ganz simple parallel geschaltet, > aber was genau soll das bringen? Damit erhöhe ich doch nur die Kapazität > des "Gesamtkondensators" den ich dadurch erzeuge, könnte ich nicht > einfach einen größeren einzelnd einbauen? Es geht dabei nicht um die Kapazität, sondern um die Filterwirkung. Grob gesagt ist der 10uF für die niedrigen Frequenzen zuständig, und die anderen beiden für hohe Frequenzen. > 2) Das wäre nun alles was ich Hardwareseitig benötige für diese Messung? Genau. > Den Rest setze ich dann Softwaremäßig durch eine möglichst hohe > Abtastrate um und errechne mir dadurch die tatsächliche Spannung? > (Vref/2 dann halt noch abziehen. So einfach ist es nicht. Der Spannungsteiler wird nicht ganz exakt Vref/2 ergeben. Daher ermittelst du in der Software 2 Werte: max und min. Die Differenz von max und min ergibt dann die tatsächliche Amplitude, egal wie groß der Offset war. Die Samplingrate muss ein mehrfaches der Netzfrequenz sein, damit du möglichst genau die Scheitelpunkte "mitbekommst". > > Vielen Dank schonmal für eure Hilfe, so verstehe ich die Schaltung > mitlerweile wenigstens :) Freut mich, dass du nicht einfach nur abmalen sondern auch verstehen möchtest. ;-)
Easylife schrieb: > Daher ermittelst du in der Software 2 Werte: max und min. > Die Differenz von max und min ergibt dann die tatsächliche Amplitude, > egal wie groß der Offset war. > > Die Samplingrate muss ein mehrfaches der Netzfrequenz sein, damit du > möglichst genau die Scheitelpunkte "mitbekommst". Okay, ich hätte zur Referenz ansonsten die tatsächliche Spannung am Spannungsteiler gemessen und verrechnet, mit der Aplitude ist eigentlich aber dann besser umzusetzen. Die Netzfrequenz ist 50Hz, also dauert eine Periode 0,02s/20ms/20.000µs. Der Arduino benötigt ca 100µs für eine Messung, d.h. ich könnte ca. 200 Messungen pro Periode durchführen. Gehen wir davon aus, ich würde 150 Messungen machen, dann filtere ich mir daraus den höchsten Wert und den niedrigsten raus, ziehe die beiden voneinander ab und erhalte den momentanen Spannungswert. In der Zwischenzeit messe ich natürlich dauerhaft weiter und die Berechnung läuft paralell. Dann sollte das Ergebnis ziemlich genau werden, nur stellen sich mir hierzu noch ein paar Fragen: 1) Liegt die Messdauer von 100µs am einzelnen Pin oder am Chip? 2) Wenns am Chip liegt, kann ich sicherlich bei 3 Sensoren nicht jeden Eingang gleichzeitig Messen in 100µs sondern müsste dies nacheinander tun? Oder gehts doch paralell, das wäre natürlich besser. 3) Hält der Arduino eine "fast maximale" Abtastgeschwindigkeit überhaupt dauerhaft aus, oder muss ich die Geschwindigkeit reduzieren, damit das Gerät lange hält anstatt ner Woche? Wenn dies beantwortet ist, denke ich dass ich vorerst bereit bin mir dies zu programmieren und dann am Dienstag/Mittwoch Tests zu fahren. PS: Ich möchte im übrigen wirklich verstehen, wieso das so ist und wie das geht, sonst steh ich beim nächsten Projekt ja sofort wieder hier ;)
Das mit der Spitzenwertmessung/-auswertung funktioniert natürlich nur, wenn deine Last gleichmäßig ist. Sobald hier induktive Lasten oder Phansenanschnitte im Spiel sind, geht das nicht mehr so einfach. Besser ist es dann doch, die einzelnen Messwerte zu integrieren. Schau dir mal den Code an, der in dem von dir genannten Projekt verwendet wird. Der uC wird die ADC Kanäle vermutlich nicht gleichzeitig samplen können. Meistens sitzt hier ein Multiplexer vor einem ADC, der die Kanäle nacheinander digitalisiert. Wenn du diese Ungenauigkeit vermeiden möchtest, müsstest du wohl 3 externe, synchronisierte ADCs nehmen. Die Verwendung der maximal möglichen Samplerate schadet dem Arduino nicht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.