Pages: [1]   Go Down
Author Topic: Probleme mit vielen analogreads  (Read 897 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 62
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

CH
Offline Offline
God Member
*****
Karma: 19
Posts: 703
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 62
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 62
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

AREA COLOGNE
Offline Offline
Edison Member
*
Karma: 21
Posts: 1127
I am 1 of 10 who understands binary
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

AREA COLOGNE
Offline Offline
Edison Member
*
Karma: 21
Posts: 1127
I am 1 of 10 who understands binary
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 62
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 62
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Viele Grüsse,   Michi
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 62
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
~                                
Logged

Pages: [1]   Go Up
Jump to: