Forum: Mikrocontroller und Digitale Elektronik mV messen mit Avr


von Wolfi (Gast)


Lesenswert?

Hallo

Ich arbeite gerade  an einer Windmessung mit einem Widerstandsdraht .

den ich bestrome und anhand der Stromänderung den Win bestimme.

Das klappt auch schon ganz gut ,nur ändert sich der Strom im Bereich 
zwischen 1,5 und 2,5 mA also nicht viel.

Hab nun einen 100mOhm 4 Lleiterwiderstand zwischengeschalten und Messe 
den Spannungsabfallder so bei 35 mVliegt  und ändert sich im 
Kommabereich .

Danach hab ich nun einen Verstärker LMP8172 nachgeschlten der Versärkt 
das ganze nun um 20 fach auf so 700mV .Die wollte ich jetzt messen mit 
einem M16 AVR.
Leider klappt das nicht so ganz da der gemessene Wert mit dem AVR stark 
schwankt, obwohl wennn ich mit dem Multimeter messe der Wert gleich 
bleibt.Da es  bei mir ja aufs mV ankommt ist das völlig unbrauchbar
Habe schon mit unterschiedlichen Ref Spannungen probiert 1,5V bis 5 
Volt.
Verwende Bascom AVR .

Hat jemand vieleicht eine Idee ?

Oder mach ich einfach bei der Messung mit dem AVR was falsch aber wenn 
ich die Betriebsspannung messse komme ich immer auf 4,9998528.

Gruß

Wolfgang

von JÜrgen G. (psicommand)


Lesenswert?

bei 35mV ist es wichtig den Offset und wenn Temperaturschwankungen sind 
den Offsetdrift zu kompensieren...

Ich würde auch die Verstärkung höher stellen... das du auf ~3V kommst... 
dann lässt sich das ganze schön messen... wenn die Schwankungen nicht zu 
schnell von statten gehn, vllt noch einen kleinen kondensator dazu, 
damit die spannung nicht zu schlimm schwankt, von was auch immer 
herrührend...

bei der programmierung kann ich leider nicht helfen, bin eingefleischter 
C programmierer ^^

von rene (Gast)


Lesenswert?

Weshalb nur auf 700mV verstaerken ? Da sollte man auf das maximal 
moegliche gehen, sodass der Wandlerbereich ausgenuetzt wird. Der Opamp 
sollte eine kleine Drift haben.

von Wolfi (Gast)


Lesenswert?

Hallo Danke für die schnelle Antworten

also mit Konensator habs ich schon mal Probiert hilft nichts
und ich habs auch mit dem Ossci nachgemessen die spannung schwankt 
eigendlich nicht

Kann das Signal noch Vertärken muß mir noch einen guten Op suchen aber 
wennn der AVR  so unteschiedliche Werte liefert hulft das auch nicht 
viel


Gruß Wolfi

von Dirk (Gast)


Lesenswert?

Hallo, vielleicht ist der INA138 interessant für deine Aufgabenstellung.

von Ingo E. (ogni42)


Lesenswert?

Da der Wind nicht gleichmäßig weht, sind Deine Messungen natürlich 
Schwankungen unterworfen. Wenn Du jeweils den Mittelwert über z.B. 10 
aufeinander folgende Messungen nimmst, wird das Ergebnis wahrscheinlich 
stabiler aussehen.

von Hans W. (Firma: Wilhelm.Consulting) (hans-)


Lesenswert?

deine referenz ist einfach nicht gut genug....

schau mal im datenblatt vom uC nach was da alles vorgeschlagen wird...

wenns dann noch immer nicht so tut wies soll:
*guard-ringe rundherum
*extra-analog-masse machen
*alles schön niederohmig machen
*und dann erst in software noch nen filter drüber...


aja und schmalbandig messen hat auch noch niemanden geschadet... sprich 
irgendwo einen tiefpass hin.. aber bitte nicht den C an die OP-eingänge 
oder an den analog-eingang vom Uc... das kann zu lustigen schwingungen 
führeren...


73

von Axel R.[DG1RTO] (Gast)


Lesenswert?

>mit einem Widerstandsdraht

Hallo Wolfi,

warum denn nun gerade Widerstandsdraht!??
der ist ja nun mal dafür gemacht, das er seinen Wert bei 
Temparaturschwankungen gerade NICHT ändert (ändern sollte).

Bei einem dünnen Kupferdraht sieht die Sache messtechnisch wesentlich 
freundlicher aus.
Natürlich ist der spezifische Widerstand deutlich kleiner. musst Du 
einen dünneren Draht nehmen.
Du kannst auch von einer Taschenlampe"birne" den Glaskolben VORSICHTIG 
entfernen und das, was von ihr übrig bleibt verwenden. Geht Seehr gut!!
Oder:
Hast du einen PTC zur Verfügung? Lass den warm werden.
Eine Diode in Flussrichtung könnte auch gehen.

VIele Grüße

AxelR.(Heute mal als GAST)

von Branko Golubovic (Gast)


Lesenswert?

@Wolfi
>Das klappt auch schon ganz gut ,nur ändert sich der Strom im Bereich
>zwischen 1,5 und 2,5 mA also nicht viel.

>Hab nun einen 100mOhm 4 Lleiterwiderstand zwischengeschalten und Messe
>den Spannungsabfallder so bei 35 mVliegt  und ändert sich im
>Kommabereich .

Diesen Satz verstehe ich nicht.
Wie hast du dein Widerstanddracht  eingeschlossen?
Warum muss du Strom messen?

Ich nehme an du hast ein Widerstanddracht mit positiven oder negativen
Temperatur-Koeffizient, d.h. mit Temperatur ändert sich sein Widerstand.
Durch Strom erhitz sich Widerstanddracht durch Eigenerwärmung und 
dadurch
steigt(oder sinkt) sein Widerstand.
Durch Wind wird Widerstanddracht abgekühlt und damit sinkt sein 
Widerstand.
Damit ist möglich indirekt Windgeschwindigkeit zu bestimmen.
Du brauchst am ende die Widerstandänderung zu messen.
Am einfachste wehre mit einem Bruckenschaltung, mit 3 fix Widerstände 
und
deinem Widerstanddracht:

AVCC----------
     |       |  R1=R2
     -       -
     R       R
     1       2
     -       -
     |       |
     .-------|-----ADC0
     |       |         (Diff. Modus)
     |       .-----ADC1
     -       -
     Rwind   R   R3=Rwind(ohne Wind)
             3
     -       -
     |       |
AGND----------

Am ende kannst du Differenz-Eingang von ATmega16(ADC0-ADC1) verwenden 
und
Verstärkungs-Faktor einstellen.(Gain=10?).
Und am ende mereren Messwerten aufsummieren.

Branko

von Carsten P. (papa_of_t)


Lesenswert?

Manchmal sucht man am falschen Ende. Schließe erstmal ein Poti an am ADC 
Eingang. Kleines BasCom Programm (mußt noch eine Pause einbauen, siehe 
Thread:)

Beitrag "Mega8 ADC Meßproblem"

Laß hören, woran es gelegen hat.. :-)

von Hans W. (Firma: Wilhelm.Consulting) (hans-)


Lesenswert?

also wenn ich mich recht erinnere hat der avr doch eien bandgap 
drinnen.. damit wäre 700mV schon in etwa 2/3 von der full-scale...das 
ist schon OK.. das größte problem ist meiner erfahrung nach die referenz 
so stabil zu bekommen, dass die werte nicht springen.. das hat imho fast 
ausschließlich mit der referenz und der eingangsstufe zu tun... dein 
multimeter springt nicht weil da ein 2-rampen ADC drinnen ist und der 
integriert dir über die zeit von selbst.. der avr hat einen SAR-ADC 
drinnen... da ist das dann ein bisserl böser...

die idee mit dem poti und schaun obs dann noch immer springt würd ich 
schonmal als zielführend ansehen....

73

von Wolfi (Gast)


Lesenswert?

Hallo

Vielen Dank für die rege Teilnahme an meinem Beitrag.

Also der Widerstandsdraht ist ein Temeraturabhängiger der ändert seinen 
Wert von 0 bis 100° um 33%. Verwende ja 2 meter davon bei 21 Ohm pro 
Meter

Hab da schon einige Versuche hinter mir  ich kann nur sagen das es  mit 
der Strommessung am bessten klappt.

Die Widerstandsmeßbrücke hab ich auch versucht, aber ich komm da nicht 
auf immer gleiche Ergebnisse da ja duch den Strom die Bauteile  sich 
auch erwärmen.Das Problem ist das sich eine Änderung nur im mV Bereich 
ergibt und das sollte auch immer gleich sein bei einer bestimmten 
Windgeschindigkeit(die liegt so zw.0,1 bis 1m/s) mehr kann man auch mit 
dieser Methode nicht messen wie ich so ausprobiert habe.)

So nun zum eigendlichen Problem hab jetzt die Versuche mit dem Poti 
gemacht und mußte feststellen, das das schon das Übl sein kann.
Wenn ich die Betriebsspannung als Ref nehme und auch diese dann mit dem 
ADC messe  bleibt der gemessene Wert gleich. Nehm ich aber eine andere 
Spannung zb. von einem Netzteil und messe wiedrum die Spg der 
Betriebsspannung bekomme ich unerschiedliche Werte zurück das ist zwar 
nicht viel aber es schwankt doch um ein einige mV.
Also denk ich liegt schon viel an einer sehr genauen Ref Spannung wie 
Hans vormir geschrieben hatt.

Werd also mir einen  Präzisionsspannungsregeler besorgen und dann das 
ganz mal wieder wiederholen und schauen was dabei rauskommt.

Melde mich dann wieder

Danke nochmal

Wolfi

von Hans W. (Firma: Wilhelm.Consulting) (hans-)


Lesenswert?

du brauchst keinen speziellen-spg-regler... du musst die spannung nur 
sauber bekommen...

so ein 7805 in std.-beschaltung und dann noch ein LC-Filter nach sollte 
eigentlich schon funktionieren.. aber du kannst auch den bereits in 
deiner schaltung verwendeten nehmen...nur sollte die spannung für deinen 
sensor eben über ein LC-Filter und direkt vom regler kommen...

du hast auch nicht gerade zu vernachlässigende leiterschleifen... also 
solltest du zumindest irgendwo einen integrator mit 300ms zeitkonstanten 
haben um 60,50 und 16 2/3 Hz zu unterdrücken

73

von Branko Golubovic (Gast)


Lesenswert?

>Also der Widerstandsdraht ist ein Temeraturabhängiger der ändert seinen
>Wert von 0 bis 100° um 33%.

Das ist in Ordnung.

>Die Widerstandsmeßbrücke hab ich auch versucht, aber ich komm da nicht
>auf immer gleiche Ergebnisse da ja durch den Strom die Bauteile  sich
>auch erwärmen.

Wie stellst du dir Messprinzip vor?
Widerstandsdracht hat kein Fehl um das Wind zu spüren.
Du verstehst  Prinzip nicht. Widerstanddracht  MUSS sich durch
den Strom erwärmen und je mehr desto besser.
Auf diese weise steigt sein Widerstand.
Durch den Wind wird dein Widerstanddracht abgekühlt und damit  sinkt 
seine Temperatur(und sein Widerstand).
Am besten wehren zwei identische Widerstände zu verwenden:
------------->
W--->/
i--->| . Wref
n--->\
d----->. Wmess
------------->
Auf diese weise kannst du Einfluss von Umgebungstempetarur kompensieren
weil ein Widerstand wird nicht durch der Wind beeinflusst und er liefert 
dir dein  Referenzwiderstand. Und Bruckenschaltung ist die beste Lösung
um richtige Messwerte zu bekommen.

AVCC--------
     |     |
     R     R
     |     |
     |     |
     Wmess Wref
     |     |
AGND--------



von Wolfi (Gast)


Lesenswert?

also das mit dem Meßprinzip ist ganz einfach ich Heize den Draht mit 
einer bestimmten Spannug und messe den Strom.

Wird nun der Draht von einem Wind umströhmt so ändert sich sein 
Widerstand und somit auch der Strom und diese Veränderung werte ich dann 
aus um den Wind zu Bestimmen.

Das ist die Theorie aber praktisch ist das viel schwerer es mu der 
richtige srtom fließen das sich der Draht nicht so stark erwärmt aber 
auch nicht zu wenig hab da schon einige Versuche hintermir .

Gruß wolfi

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Beitrag "Hitzdrahtanemometer"
Thema Hitzdrahtanemometer

von Branko Golubovic (Gast)


Lesenswert?

>Das klappt auch schon ganz gut ,nur ändert sich der Strom im Bereich
>zwischen 1,5 und 2,5 mA also nicht viel.

O.K. 1,5mA<I<2,5mA

>Hab nun einen 100mOhm 4 Lleiterwiderstand zwischengeschalten und Messe

R=100mOhm=0,1 Ohm

>den Spannungsabfallder so bei 35 mVliegt

Wie kommst du darauf?
U=I*R -> 1,5mA*0,1 0hm=0,15mV; 2,5mA*0,1 Ohm=0,25mV

>den Spannungsabfallder so bei 35 mVliegt  und ändert sich im
>Kommabereich .

Du hast offensichtlich ein offset von ca.35mV weil Spannungsänderung
ist nur 0,1mV(100µV).

Lösung ist villeicht ein AD8551 oder AD8571 OPA mit 1µV Offset


Branko

von Malte _. (malte) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich habe die Erfahrung gemacht dass die gemsessenen Werte des ADC im AVR 
ziemlich stabil sind, wenn man mehrere Messungen vornimmt und dann den 
Mittelwert errechnet. Bei einem Mittelwert von 64 (10 Bit) Messungen 
(passt gut in eine 16 Bit Variable und lässt sich mit einfachen Shift 
Operationen wieder teilen) schwankt nur noch das LSB. Gegen einen 
konstanten Offset hilft das aber eher nicht.
Wenn man es mit Messgeschwindigkeit absolut nicht eilig hat, kommt man 
mit sehr vielen Messungen mit der Auflösung auch deutlich unterhalb die 
10 Bit. Allerdings habe ich festgestellt, dass dies dann nicht mehr ganz 
linear ist .

Im Anhang mal die Ladekurve eines Akkus. Die Skala ist in mV (abzüglich 
eines Offests zur besseren Darstellung). Der ADC könnte bei meiner 
Schaltung eigentlich nur Unterschiede von knapp 20mV feststellen (daher 
wohl die kleinen Wellen in der Kurve). Es wurde jeweils der Mittelwert 
von 2048 Messungen verwendet.

von Werner (Gast)


Lesenswert?

Hallo,

mein Bastelprojekt ist zwar ein ganz anderes, aber ich versuche 
ebenfalls kleine Spannungen und/oder Ströme mit einem ATmega8 zu messen.

Das Layout der Platine scheint große Bedeutung zu haben.
Die Führung der Masseleitung usw.

Mit der ATmega8 Platine hier
http://www.razyboard.com/system/morethread-wrdkontrollekamikrokontrolle-wiesollichnurheissen-1542510-4190906-0.html
habe ich überraschend gute Ergebnisse.


mfg werner

P.S: Sauberer als die Spannung am Widerstandsdraht wird die Messung 
nicht werden.

von fritz123 (Gast)


Lesenswert?

Hallo,

bei DMS (120 Ohm, delta 0,3 Ohm) mache ich das auuf folgende Weise.
1000 mal messen und dann den Mittelwert bestimmen. Dadurch kann man die 
Auflösung des ADU auf Kosten der Geschwindigkeit erhöhen.
Komme damit weit unter die Auflösung des ADU.
Da sich auch dieses Signal sehr langsam ändert, sollte das für eine 
Temperaturmessung auch möglich sein.

mfg
fritz123

PS
siehe Stochastische Messtechnik bzw. Dither

von Thorsten (Gast)


Lesenswert?

zur von fritz123 vorgeschlagen Methode ist noch zu sagen, dass sie nur 
funktioniert, wenn genug Rauschen im Signal ist.

Gruss,
Thorsten

von fritz123 (Gast)


Lesenswert?

Ja, theoretisch ist Rauschen dazu nötig. Ich nehme aber die Spannung (5 
Volt) von der USB Schnittstelle und das funktioniert auch.
(In der Praxis ist das eine brauchbare, billige Rauschquelle.)

fritz123

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
Noch kein Account? Hier anmelden.