Go Down

Topic: Probleme mit vielen analogreads (Read 982 times) previous topic - next topic

komputer.de

Hallo,

Baue gerade an einem Powermonitor - von 10 Steckdosen in einem 19" Gehäuse soll der Strom gemessen werden.

mit Spannungsmessung und Gesamtstrom brauche ich 12 Analogeingänge.
Habe das alles mit einem Duemilanove getestet und bin dann auf einen Mega umgestiegen (wegen der Analog Inputs) - wenn ich nun alle analogreads aktiviere bekomme ich andere Werte als wenn nur 5 aktiv sind  :-(

Kennt jemand das Problem?

Viele Grüsse,   Michi

Webmeister

Wie hoch sind die Eingangssignale und wie lange sind die Leitungen?

Ich vermute, dass Störungen die falschen Werte erzeugen.

Folgende Massnahmen würde ich vornehmen:
-Abgeschirmte Leitungen verwenden
-Analogsignal filtern (Tiefpass)

Falls du ein Oszilloskop hast, solltest du einen Blick auf die Analogsignale werfen.

komputer.de

Hallo,

Am Eingang hängen
Stromwandler sehr niederohmig abgeschlossen (100-250Ohm) kann mir nicht vorstellen dass da was einstrahlt.
Eingangsspannung ist momentan mit 100W Glühbirne als Last bei 200mVss
Mit Oszi sieht alles gut aus - keine HF Störungen etc.

Hier ein Schaltbild:
http://www.komputer.de/wordpress/wp-content/uploads/2010/04/powermonitor1.pdf


Viele Grüsse,   Michi

komputer.de

Ok - Problem gelöst!

Es liegt an meinem spaghetti-code ;-)

Da analogread verhältnismässig lange dauert (~100 microsekunden)
kommt es bei vielen analogreads zu einer Phasenverschiebung der gemessenen Signale (Strom, Spannung) - deswegen die Fehler bei der Anzeige (Wirkleistung).


Viele Grüsse,    Michi


volvodani

Was hälst du von einer Integration der gelesenen Werten also ein Filter der die neuen Messwerte nicht zu 100% pro Lesezyklus auf sonden nur 50% so hat der dann nach 5-6 Zyklen den aktuellen Wert dirnnen. Das macht alles ein ganz bisschen smoother. Spitzenströme (Einschaltströme) wirst du sowieso nicht (100%) korrekt auswerten können mit einem Zyklus-abhänigen System.
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

volvodani

Was hälst du von einer Integration der gelesenen Werten also ein Filter der die neuen Messwerte nicht zu 100% pro Lesezyklus auf sonden nur 50% so hat der dann nach 5-6 Zyklen den aktuellen Wert dirnnen. Das macht alles ein ganz bisschen smoother. Spitzenströme (Einschaltströme) wirst du sowieso nicht (100%) korrekt auswerten können mit einem Zyklus-abhänigen System.
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

komputer.de

Naja - da ich den Verlauf von Spannung und Strom erfassen will (im besten Fall 50Hz Sinus) und deren Phase zueinander um die Wirkleistung zu ermitteln (bzw. werden Strom und Spannung bei der Messung sofort multpliziert -  aufaddiert und anschliessend wieder durch die Anzahl der Samples geteilt)   - da wird nichts gehen mit Integration von Messwerten aus vorherigem Zyklus.

Mir wird nichts anderes bleiben als zu jeder Strommessung auch eine Spannungsmessung (gleich danach) durchzuführen, anstatt alle Strommessungen mit einer Spannungsmessung zu multiplzieren - das macht das Ganze zwar noch langsamer - sollte aber das richtige Ergebnis liefern....

Werde später mal den kompletten Code dazu einstellen - dann kannst du mal sehen was ich alles verbrochen habe ;-)

Viele Grüsse,   Michi

komputer.de

Habe hier die Sketches eingestellt:
http://www.komputer.de/wordpress/?p=8

Viele Grüsse,   Michi

komputer.de

Zu den Problemen mit den analogreads möchte ich noch was anmerken - da ich dabei einiges über atmel analoginputs gelern habe:

analogread geht ziemlich langsam vonstatten - intern fragt ein multiplexer die analogports ab.
das lässt sich durch beeinflussen des Prescale Faktors erheblich beschleunigen.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1208715493/11

je schneller ein analogport ausgelesen werden soll desto wichtiger ist die niedrige Eingangsimpedanz - sollte aber in jedem Fall unter 10kOhm bleiben da es ansonsten Messfehler gibt.

Die 10kOhm Eingangswiderstände als Strombegrenzung (irgenwo hatte ich gelesen dass der maximale Eingangsstrom eines Atmel 1mA betragen darf ?) werde ich wohl auch durch niedrigere Werte und externe Schutzdioden ersetzen müssen.          

Viele Grüsse,   Michi
~                                

Go Up