Hallo, ich lese ein DC Signal an dem PIN A0 des uC ein. Danach rechne in den Wert um in eine Spannung und lass sie mir über den Serial-Monitor ausgeben. 5V = 1024 0V = 0 Ich messe die Werte zum verlgeich auch noch mit einem Multimeter. Und stelle leider eine abweichung jeder messung fest. Mehr als 20 mV, da der Kontrolloer ja keine genaueren abweichungen feststellen kann. als zb.: uC Multimeter 3,11 2,91 1,90 1,76 3,38 3,14 Die Werte von dem uC sind gemittelt aus 500 Messungen. Kann es sein das ich da die Referenzspannung oÄ berücksichtigen muß um da exakte Werte zu bekommen ? Vielen Dank MFG
Peter Stein schrieb: > Kann es sein das ich da die Referenzspannung oÄ berücksichtigen muß um > da exakte Werte zu bekommen ? Das kann nicht nur sein, das ist so.
Die Nanos haben keine Induktivität (Tiefpass) vor Vadc. Arduino schaltet nicht den halben Chip aus, um das Rauschen zu mindern. Da kann man also noch nacharbeiten. Auch auf die interne Referenz wechseln, die ist meist viel stabiler, als die Versorgungsspannung.
Peter Stein schrieb: > uC Multimeter > 3,11 2,91 > > 1,90 1,76 > > 3,38 3,14 Wenn du jetzt noch deine µC-Werte durch 1,07 teilst, sieht das doch recht gut aus. MfG Klaus
Vielen Dank für die schnellen Antworten. Klaus, wie kommen sie auf 1.07, dass passt ja tartsächlich , aber wieso :-) ? Die interne Ref.spannung ist ja 2.5V wie kann ich die denn nutzen bzw. wie bring ich die in meinen quellcode mit ein? Aber angenommen ich lege 5 V an meinen AD eingang an, und bekomme 1023 ausgegeben und bei 0V, 0 dann müßte doch alles passen oder irre ich mich ?
Peter Stein schrieb: > Die interne Ref.spannung ist ja 2.5V 1,1V Oder eben Vcc also 5V(eher 4,5V über USB) als default Einstellung http://www.arduino.cc/en/Reference/AnalogReference
Peter Stein schrieb: > Klaus, wie kommen sie auf 1.07, dass passt ja tartsächlich , aber wieso > :-) ? Die USB Spannung (die du als Referenz verwendest) hängt vom verwendeten Computer ab. Manche USB Ports liefern 4,75V andere 5,1V. Das als Referenzspannung zu verwenden kann natürlich nicht wirklich gut gehen.
Und nein. Die Referenzspannung ist NICHT 2.500000V und auch nicht 1.100000V Die interene Referenzspannung bewegt ich in der NÄhe der genannten Spannungen (welche steht im Datenblatt zum Prozessor) und ist hauptsächlich eines: sie ist stabil Aber sie hat nicht exakt den von dir angenommenen Wert sondern muss für jeden Prozessor individuell ermittelt werden. 'in der Nähe' bedeutet, dass zb die 2.56V Referenzspannung nicht 3.5V sein wird und auch nicht 1.8V. Aber sie könnte zb 2.54V oder 2.58V sein. Also ein Wert, der nicht sehr viel vom nominellen Wert abweicht. Wie gross die Abweichungen bei einem konkreten µC-Exemplar sein können steht ebenfalls im Datenblatt.
Okay aber wie kommen SIe da auf 1.07? Vielen Dank für die Antworten , aber jetzt weiß ich leider immer noch nicht, was ich in meinem Code verändern muß, das ich eine genauere Messungen durchführen kann. Könnte mir jemand ein Bsp. hier zeigen, was ich in meinem Quellcode verändern müßte. wenn ich mal annhemen ich hätten den wert schon für meine ref spannung vom prozessor. Vielen dank
Peter Stein schrieb: > Okay aber wie kommen SIe da auf 1.07? Er wird halt durchdividiert haben: Was soll rauskommen, was kommt raus, um welchen Faktor unterscheidet sich das eine vom anderen? Ist der Faktor in allen Beispielen konstant? > Vielen Dank für die Antworten , aber jetzt weiß ich leider immer noch > nicht, was ich in meinem Code verändern muß, das ich eine genauere > Messungen durchführen kann. andere Referenzspannung nehmen. Zb die interne Aber: dann musst du auch die EIngangsbeschaltung ändern. Denn der ADC macht ja nur Spannungsvergleiche und sagt dir wie gut die beiden Spannungen übereinstimmen (als Zahlenwert von 0 bis 1023). Wenn du also eine Referenzspannung von 2.5V hast, aber bis 5V messen willst, dann musst du die 5V runterteilen, bis du im Bereich deiner Referenzspannung bist. Stichwort: Spannungsteiler. Den kann man auch als Poti ausführen. > Könnte mir jemand ein Bsp. hier zeigen, was ich in meinem Quellcode > verändern müßte. Weiter oben hat doch schon jemand einen Link auf eine Arduino Funktion gepostet!
Peter Stein schrieb: > aber jetzt weiß ich leider immer noch nicht, was ich in meinem Code > verändern muß. wenn ich mal annhemen ich hätten den wert schon für > meine ref spannung vom prozessor. Und hier weiß keiner, wie dein Code bisher aussieht. Da sind Änderungen schwierig zu beschreiben. Ganz allgemein wird man mit dem klassischen Dreisatz schon recht weit kommen. Wenn das noch nicht reicht, kann man sich über Offset und/oder Korrekturen höherer Ordnung Gedanken machen.
Peter Stein schrieb: > Klaus, wie kommen sie auf 1.07, dass passt ja tartsächlich , aber wieso > :-) ? weil 3,11/2,91 oder 1,90/1,76 oder 3,38/3,14 eben 1,07 ergibt Peter Stein schrieb: > uC Multimeter > 3,11 2,91 > > 1,90 1,76 > > 3,38 3,14 aber wer sagt denn das dein Multimeter stimmt? Die echte Ref Spannung aus der internen Wahl kannst du am AREF Ausgang messen ob die 2,5V oder 2,56V oder 2,57V beträgt! Ist dein Multimeter dir genau genug kannst du das als Maßstab nehmen. Üblicherweise haben die meisten ADC auch noch einen Offset Erg nehme ich 2 Messpunkte eine Spannung 3,6V gibt ADC 900 und eine 1,8V gibt z.B. 450 schon können wir m die Steigung ausrechnen https://de.wikipedia.org/wiki/Geradengleichung aber wären da Werte eine Spannung 3,6V gibt ADC 910 und eine 1,8V gibt z.B. 460 so shen wir dieselbe Steigung aber mit einem Offset b also y = m * x + b y wäre die Spannung die es zu finden gilt x wäre der ADC digit Wert b ist der Offset der irgendwie draufliegt (kann ja auch mal 0 sein, meist aber nicht) für m gilt dY/dX als m = (y1-y2)/(x1-x2) und b ergibt sich wenn ich y messe und x auf 0 setze oder anders besser gesprochne ich schliesse den ADC Eingang auf GND = 0V messe die 0V und schaue was für digits vom µC geliefert werden.
Guten Morgen, okay ich werde das Mal ausprobieren. Danke für die hilfreichen Tips. MfG
Peter Stein schrieb: > Guten Morgen, > > > okay ich werde das Mal ausprobieren. > Danke für die hilfreichen Tips. > > MfG Naja, hört sich nicht besonders überzeugend an. Beispiel (ohne Bezug auf irgendeinen bestimmten Typ) Wenn du eine Referenz (egal wo die herkommt) von 3V hast, und 3V anlegst, dann bekommst du eine Zahl von 1023 geleifert. Hast du eine Referenz von 5V dann kommt bei angelegten 5V 1023 raus. Hast du eine Referenz von 3V und legst 1,5V an dann bekommst du 512(511) geliefert. Es geht also immer um das Verhältnis zwischen Referenz und angelegter Spannung, 100% ergibt immer 1023 (10 Bit halt). Kurt (Du bekommst keinen Spanungswert geliefert, sondern immer einen Verhältniswert!!) (Auflösung: 10 Bit, also 0..1023) .
Das Zauberwort lautet "Kalibrierung". https://www.mikrocontroller.net/articles/Aufl%C3%B6sung_und_Genauigkeit#Eichen.2C_Kalibrieren.2C_Justieren UA = ADC * k = UE UE = Eingangsspanung, gemessen mit Multimeter UA = angezeigte Spannung ADC = ADC Messwert k = Kalibrierfaktor -> k = UE / ADC
Das habe ich ja schon getestet, ich habe 5 V angelegt und 1023 rausbekommen. bei 0 V 0. Demnach müßte es ja stimmen. Ich werde es jetzt aber mit der Internen Ref. Spannung von 1.1V ausprobiere, folglich habe ich ja auch eine höhere Auflösung. Da ich morgen aber erst wieder vor der Apperatur sitzte, werde ich das testen und meine Ergebnisse hier mal reinstellen.
Peter Stein schrieb: > Das habe ich ja schon getestet, ich habe 5 V angelegt und 1023 > rausbekommen. Damit ist aber noch nicht klar, welchen genauen Wert die Referenz hat. Denn: bei Bereichsüberschreitung (Eingangsspannung >= Referenz) liefert der AD-Wandler auch 1023! Gruß Dietrich
Falk Brunner schrieb: > Das Zauberwort lautet "Kalibrierung". > > UA = ADC * k = UE > > UE = Eingangsspanung, gemessen mit Multimeter > UA = angezeigte Spannung > ADC = ADC Messwert > k = Kalibrierfaktor > > -> k = UE / ADC wie willst du mit einem Faktor den Offset reinrechnen? Ohne das jetzt nachprüfen zu wollen halte ich mich lieber an die Geradengelichung, UA = ADC * m + b mit m = (y1-y2)/(x1-x2) und b = UA (für UE -> ADC = 0)
Hallo, habe jetzt die Internet Ref-Spannung von 1.1V genommen, und das Signal aus meiner schlatung über einen spannungsteiler an den an AD Wandler eingang verbunden. jetzt passt es.
Hi,
> Das habe ich ja schon getestet, ich habe 5 V angelegt und 1023
mehr geht ja auch nicht. lege mal 2,5V an. Bekommst du dann 512?
Vermutlich nicht weil deine Ub = Ref nicht 5V sein wird.
Viel Erfolg, Uwe
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.