Hallo, ich möchte mit einem Atmega128-16AU und einem OPV eine möglichst genaue widerstandsmessung durchführen, komme aber leider nicht auf einen grünen Zweig, Schaltung siehe pdf anbei. Ich brauche mindestens 10 AD-Schritte pro Ohm Schritt an Auflösung. Der zu messende Widerstand wird zwischen PAD1 und PAD2 angeschlossen, der 470R Widerstand in Serie dazu soll mir den maximalen Strom der über den zu messenden Widerstand geht auf max 10mA begrenzen. Da ich in einem Wertebereich von 0-20 Ohm messen möchte habe ich den Widerstand für den Spannungsteiler auf 490 Ohm festgelegt. Egal was ich an der Verstärkung (500/1000 Ohm) bzw dem Offset-Widerstand einstelle, ich bekomme am AD-Port des Prozessors keine vernünftige Auflösung. Sieht jemand den Fehler?
Paul A. schrieb: > Egal was ich an der Verstärkung (500/1000 Ohm) bzw dem Offset-Widerstand > einstelle, ich bekomme am AD-Port des Prozessors keine vernünftige > Auflösung. Um den OpAmp am Ausgang nicht zu stark zu belasten, würde ich R31 und R34 deutlich hochohmiger machen (z.B. 5kΩ/10kΩ). Lass R37 zuerst mal weg und mess mit einem Multimeter die Spannung am Ausgang des OpAmp mit 0Ω und 20Ω. Was kommt dann raus? Dann kannst du weiterrechnen: - Änderung von 1Ω bewirkt eine Änderung der Ausgansspannung von xxV. - Was ist die Referenzspannung des ADC? Wieviele Schritte würde xxV bewirken?
Paul A. schrieb: > Sieht jemand den Fehler? Du verstärkst eine Spannung zwischen 0 und 0.1V um Faktor 3 auf 0-0.3V, findest du das ausreichend ? Und dein 'Offset' Widerstand geht, falls er die 0+Linie anheben sill, genau in die falsche Richtung. Zudem sind deine 490 in Reihe zu den 470, also nicht 10mA sondern nur 5. Was nimmst du als Referenzspannung, 5V (was vernünftig wäre, ratiometrisch), und warum nutzt du nicht den internen PGA mit Verstärkung bis 200.
Paul A. schrieb: > ... eine möglichst genaue widerstandsmessung durchführen ... Die Genauigkeitsskala ist nach oben relativ offen und alles eine Frage des Aufwandes. Wodurch ist in diesem Sinne bei dir "möglichst genaue" begrenzt? Wenn du wirklich nahe an die 0Ω ran möchtest, wäre die erste Maßnahme eine 4-Leiter-Messung, ggf. mit Kelvin-Klemme zur Kontaktierung.
Wie schon ein Vorposter bemerkt: Niemals die Speisspannung direckt in den Messkreis führen! Nimm eine Referenzspannungsquelle! Da gibt's für wenig Geld schon um 0,001 Volt genaue! Und auch schon gepostet, das interne PGA verwenden. Auch ist für sehr genaue Messungen ein Referenz-Mess-Widerstand von 0.1% auch sehr hilfreich. ;-) Zuerst Referenz messen und dann den Prüfling.
ad allgemein: Danke für eure Antworten, war einfach schon zu verzweifelt heute(da entstehen Knoten im Kopf). ad Antwort dietrichl: Danke, ja das ist ein vernünftiges Vorgehen. Für die Verstärkung werde ich morgen früh wieder die hochohmigen Rs einsetzen. Referenzspannung sind 5V. ad Antwort MaWin: Die Reihenschaltung ist ein guter Hinweis, werde die Widerstände anpassen damit in Summe 470 Ohm rauskommen. Referenzspannung sind 5V. Den internen PGA nutze ich nicht aufgrund der übrigen Schaltungen/Routinen die auf der Platine/im uC realisiert werden.
Paul A. schrieb: > Sieht jemand den Fehler? Ich sehe sogar gleich drei: 1) falsches Meßprinzip 2) ungeeigneter OPV 3) lausiger ADC So wirst du niemals eine "möglichst genaue" Widerstandsmessung hinbekommen, schon garnicht über mehrere Dekaden hinweg.
c-hater schrieb: > Ich sehe sogar gleich drei: > > falsches Meßprinzip > ungeeigneter OPV > lausiger ADC > > So wirst du niemals eine "möglichst genaue" Widerstandsmessung > hinbekommen, schon garnicht über mehrere Dekaden hinweg. Was den Opv betrifft, manchmal muss man mit dem arbeiten was man zur Verfügung hat, das betrifft auch den Adc/uC. Vielleicht ist auch "möglichst genau" die falsche Formulierung hier. Ich möchte von 0 bis 20 Ohm in 0,1 Ohm Schritten auf einem Display ausgeben. Schwankungen der Bauteile werden Firmwareseitig kompensiert (Abgleich mit 0 Ohm) und es wird fürs erste von einer immer konstanten Temperatur ausgegangen.
Paul A. schrieb: > ich möchte mit einem Atmega128-16AU und einem OPV eine möglichst genaue > widerstandsmessung durchführen... Tja, wir haben alle so unsere Wünsche... Mal ne Frage: Wozu hast du dir so eine Schaltung ausgedacht? Ich hätte da an deiner Stelle einen üblichen so einigermaßen hoch auflösenden Sigma-Delta-ADC genommen und damit die Widerstände gemessen. Sowas gibt's z.B. von Microchip (MCP3550 und Konsorten die so etwa 20..22 Bit an Auflösung haben) oder ein Stück teurer von Analog Devices, von anderen Herstellern wahrscheinlich auch. Damit kann man Widerstände auf alle Fälle zuverlässiger und genauer messen als mit deiner geposteten Schaltung. W.S.
Paul A. schrieb: > Vielleicht ist auch "möglichst genau" die falsche Formulierung hier. Ganz sicher sogar. > Ich > möchte von 0 bis 20 Ohm in 0,1 Ohm Schritten auf einem Display ausgeben. Das hört sich doch schonmal wenigstens nach einem durchdachten Anforderungsprofil an. Hätte in's OT gehört... Damit ist dann klar, dass es zumindest prinzipiell mit dem realisierbar wäre, womit du arbeiten musst. Warum auch immer das ein MUSS sein soll. > Schwankungen der Bauteile werden Firmwareseitig kompensiert (Abgleich > mit 0 Ohm) Das wird sehr wahrscheinlich nicht reichen. Wenigstens ein Zweipunktabgleich sollte vorgesehen werden.
Du nutzt eine Wheatstonsche Brücke, wie z.B. bei DMS, was an sich ok ist. Macht aber nur Sinn, wenn ein Widerstand sich geringfügig ändert. Bei Dir kannst Du besser den Messwiderstand isoliert von GND verstärken. Dann ist auch die Versorgungsspannung egal (ratiometrisch). Also z.B. 1k als Strombegrenzung und dann 1R als Offset. So dass Du grob 5mV ... 100mV hast. Die dann mit Faktor 40 oder so verstärken und messen. Da das ganze ratiometrisch geht, spielt die Güte der Versorgungsspannung keine Rolle. Das ganze ist leicht nichtlinear. Das könnte mit einem Parallelwiderstand geglättet werden, wenn Du nicht rechnen willst.
Patrick L. schrieb: > Wie schon ein Vorposter bemerkt: > Niemals die Speisspannung direckt in den Messkreis führen! > > Nimm eine Referenzspannungsquelle! > Da gibt's für wenig Geld schon um 0,001 Volt genaue! andere Alternative: obige Schaltung beibehalten und die Versorgungsspannung als Referenzspannung nehmen, dann hängt die Genauigkeit der Messung nur von der Genauigkeit der verwendeten Widerstände ab. Geeeigneter ADC: ADS1100 https://www.ti.com/product/ADS1100
A. S. schrieb: > Da das ganze ratiometrisch geht, spielt die Güte der > Versorgungsspannung keine Rolle. Na ja - gewöhnlich erfolgen die Messungen nacheinander per Multiplexer. Die Versorgungsspannung sollte also schon glatt und nicht mit Digitaldreck zugemüllt sein. Nur statische Abweichungen der Spannung vom Nennwert spielen bei einer ratiometrischen Messung keine Rolle.
my2ct schrieb: > Na ja - gewöhnlich erfolgen die Messungen nacheinander per Multiplexer. > Die Versorgungsspannung sollte also schon glatt und nicht mit > Digitaldreck zugemüllt sein. Ich meinte wenn VCC als Referenz dient. Das böte sich bei Widerständen an, wenn er keine Spannungen misst.
my2ct schrieb: > Die Versorgungsspannung sollte also schon glatt und nicht mit > Digitaldreck zugemüllt sein. Nur statische Abweichungen der Spannung vom > Nennwert spielen bei einer ratiometrischen Messung keine Rolle. Die VDD sollte eh einen Abblock-C haben. Man kann auch den Input mit einem kleinen C abblocken.
usuru schrieb: > Die VDD sollte eh einen Abblock-C haben. Man kann auch den Input mit > einem kleinen C abblocken. Bei vielen ATmegas wird der ADC sowie separat über AVDD versorgt und AVDD über ein Filter mit VDD verbunden. Diese Trennung des Analogteils von VDD wird nicht ohne Grund empfohlen.
Mal ein anderes Konzept als Vorschlag: Nimm eine Konstantstromquelle (kannst du dir aus zwei Transistoren bauen, besser wäre ein 1,2V-Spannungsregler), speise mit diesem Konstantstrom deinen Prüfling. Das hätte schonmal den Vorteil, daß du eine saubere lineare Kurve bekommst und dir dein Spannungsteiler keine Nichtlinearitäten reinrotzt (auch wenn die bei dir gering sind). Vor allem aber ist dein Meßsignal von Anfang an deutlich größer, je nach dem wieviel Leistung du in den Widerständen verheizen willst kannst du auf eine Verstärkung zumindest theoretisch verzichten. Verstärken solltest du trotzdem, und zwar mindestens aus zwei Gründen: a) Die Eingangsimpedanz deines ADCs wird dir die Messung zwar nicht komplett versauen, bringt aber unnötigen Genauigkeitsverlust mit sich. b) Wenn du keine höhere Versorgungsspannung als die 5V hast, kannst du den Meßbereich deines ADCs nicht voll ausnutzen, da über der Konstantstromquelle immer etwas Spannung abfällt. Andererseits: Würdest du eine Spannung >5V zur Speisung nutzen würdest du dir den ADC zerballern, wenn jemand einen Widerstand einhängt der höher ist als du vorgesehen hast. Daher: Leg den Strom so aus, daß die Spannung über dem Prüfling z.B. zwischen 0...1V liegt, der Rest fällt ja über der Konstantstromquelle ab. Die mit einem OPV auf 0...5V ist ja kein Problem. Dann kannst du den vollen Meßbereich des ADC nutzen und wenn doch jemand eine höhere Spannung anlegt, geht halt der OPV mit seiner Ausgangsstufe an den Anschlag. Und wenn es sein muß, kannst du dann immer noch mit einer Z-Diode parallel zum Prüfling begrenzen.
Paul A. schrieb: > Ich möchte von 0 bis 20 Ohm in 0,1 Ohm Schritten auf einem Display > ausgeben Na denn, da reicht deine Spannungsteilermessmethode. Wenn 5V = 1023 sind, sind 200 immerhin 1V eine Verstärkung der 0.1V um 3 hilft also nicht, dein OpAmp müsste schon um 10 verstärken und da Verstärkungsfaktor nichts kostet lass ihn um 50 verstärken, für fast 5V bei 20 Ohm. Warum nun nicht der interne PGA verwendet werden kann, verstehe ich zwar nicht, aber auch der MCP6001 kann das. Ein Offset, damit 0 nicht 0 sondern vielleicht 50mV werden, ist nicht nötig. Zwar kommt ein R2R OpAmp nicht ganz an 0V, aber wenn ein Widerstand den Ausgang nach 0 zieht, bei dir der Spannungsteiler der Gegenkopplung, geht er bis 0V runter, nur nicht ganz an +5V ran.
Patrick L. schrieb: > Nimm eine Referenzspannungsquelle! > Da gibt's für wenig Geld schon um 0,001 Volt genaue! > suche ich auch noch, kannst du da was konkretes empfehlen? Ich traue den üblichen Chinaübersetzungen nicht so recht...
Thomas G. schrieb: > kannst du da was konkretes empfehlen Eine 0V Quelle. Da ist selbst eine mit 10% Abweichung noch genauer als 1mV.
Thomas G. schrieb: > suche ich auch noch, Eines teils gibt es da den LM4040 die sind schon sehr präzise und gerne genommen oder wenn es etwas teurer und genauer sein soll: AD 586 sind sehr stabil und genau. Ist unser Erfahrungswert Für PH Sensoren oft auch der LP2985LV
Vielen Dank für die Hilfestellungen, hatte wohl gestern echt einen Knoten im Kopf^^ Die Messung funktioniert jetzt (Schaltung siehe anbei), theoretisch habe ich damit sogar kleinere Schritte, in der Praxis brauche ich diese natürlich um Ungenauigkeiten in der Kurve zu kompensieren. Die "Genauigkeit" die ich damit erreiche reicht für meine Anwendung :) Danke an alle und schönen Tag euch!
:
Bearbeitet durch User
Wolfgang schrieb: > Diese Trennung des Analogteils > von VDD wird nicht ohne Grund empfohlen. Braucht man, um ggf. eine externe Referenz anzuschliessen oder alternativ mit VCC/VDD ratiometrisch zu messen. Beim ADS1100 ist nur eine ratiometrische Messung vorgesehen, dafür hat der auch 16 bit, der ADC vom Atmega nur 10 bit.
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.