Hallo, ich weiß nicht, ob das Thema hier oder zu Analogtechnik gehört, aber ich denke hier passt es durchaus auch. Ich möchte mit einem Arduino Mega, der mit 5V betrieben wird (nur um ein konkretes Modell zu benennen, es kann genauso gut auch ein STM32F103 sein) gerne eine Spannung im Bereich 3,0 V bis 4,2V messen. Dies geht ja mit den Standardmitteln. Nur dachte ich mir, warum soll ich denn den restlichen Bereich "verschwenden" und somit gut ein bis zwei Bit in der Auflösung. Deshalb die Frage wie verschiebe und vergrößere ich mein zu messendes Fenster von 3,0V - 4,2V auf 0V - 5V. Dass ich dazu ziemlich sicher einen oder mehrere OpAmps brauche vermute ich schon (bin da erst am lernen wie die genau eingesetzt werden). Ich wollte nur schon mal fragen, ob ich mir durch die Verschieberei nicht wieder Ungenauigkeiten und Unlinearitäten hole und dadurch vielleicht mehr an Genauigkeit verliere als ich gewinne? Ich brauche als keine fertige Lösung, sondern lediglich Hinweise wo ich was nachlesen kann, denn das Thema ADC lässt sich nicht wirklich gut googeln, weil da sehr viel kommt, was mir nicht weiterhilft.
Ralf M. M. schrieb: > Ich wollte nur schon mal fragen, ob ich mir durch die Verschieberei > nicht wieder Ungenauigkeiten und Unlinearitäten hole wenn man es richtig macht nicht. stichwort ist op-amp subtrahierer.
Wenn Dein Meßobjekt und der AD-Wandler keine gemeinsame Masse haben, so kannst Du auch GND vom Messobjectes um 3V gegenüber dem GND des AD-Wandlers absenken.
Joe F. schrieb: > wenn man es richtig macht nicht. Mit entsprechend teuren opamps vielleicht. Mit Standard Ware holst du dir schnell etliche 10 mV Offset. Wenn das keine Rolle spielt dann erst subtrahieren bzw. Differenz bilden und dann verstärken. Geht mit einem op wenn keine übertriebenen Anforderungen an Eingangswiderstand gestellt wird. Der Messbereich wäre nur verschwendet wenn man die Auflösung unbedingt braucht. Gerade bei 12 Bit Wandlern ist das nur selten der Fall.
Ralf M. M. schrieb: > Deshalb die Frage wie verschiebe und vergrößere ich mein zu messendes > Fenster von 3,0V - 4,2V auf 0V - 5V. Wie willst du genau einen Messbereich bis 5V realisieren? Dafür benötigst du eine Referenzspannung mit 5V, die in einem 5V-System nur mit zusätzlichem Aufwand zu betreiben ist. Oder bist du mit der Genauigkeit der µC Versorgungsspannung für die Messung zufrieden?
@Ralf M. Metzing: Beschreibe mal genauer, ob Messobjekt und Dein Arduino irgendwie auf einem Potential zusammenhängen oder ob das nicht der Fall ist. Sind beide getrennt, so lautet mein Vorschlag: Schritt 1: Du erzeugst eine negative Spannung nach dem Prinzip der Ladungspumpen: http://www.loetstelle.net/praxis/negativevoltage/negativevoltage.php http://www.sprut.de/electronic/switch/minus.html Schritt 2: Du schaltest an diese negative Spannung einen TL431 als Referenz und schaffst Dir so einen Bezugspunkt (Hilfsmasse), der 2,5V unter Deiner "echten" Masse liegt. Schritt 3: Du schließt Dein Meßobjekt zwischen dieser Hilfsmasse und dem AD-Wandler Eingang an. Dann "sieht" Dein AD-Wandler bei einer zu messenden Spannung von 3V nur 0,5V. Mit ein paar Zusatz-Tricks kannst Du die Hilfsmasse auch auf -3V justieren. Viele Grüße Igel1
Ach ja: wenn Du etwas mehr Geld investieren möchtest, so kannst Du natürlich auch bessere Referenzen als den TL431 einsetzen, z.B. den LT1004, oder andere Käfer: https://www.mikrocontroller.net/articles/Standardbauelemente#Shuntregler.2FSpannungsreferenz Oder Du suchst bei Distributoren nach Spannungsreferenzen und sortierst dort per Filter direkt die 3V Referenzen raus, z.B. so: http://de.farnell.com/webapp/wcs/stores/servlet/Search?catalogId=15001&langId=-3&storeId=10161&categoryId=700000004344&sort=P_ATT_BASE_VALUE_1012845_DE_DE&eq=N%3D203961%2B312893079%2B2008%26amp%3BNs%3DP_PRICE_FARNELL_DE%257c0%26amp%3BNtpc%3D1%26amp%3BNtpr%3D1&showResults=true&aa=true&pf=312893079&vw= Im obigen Link habe ich die 192 Treffer direkt nach Anfangsgenauigkeit sortieren lassen. Man erkennt: schon für 1-2 EUR gibt's Genauigkeit, die über der Genauigkeit eines AD-Wandlers der ATmega- oder ST-Serie liegen dürfte. Das Problem wird allerdings die Beschaffbarkeit solcher Bauteile beim Hobby-Online-Versand sein. Dort mußt Du einfach nach "Spannungsreferenz, 3V" suchen und dann nehmen, was halt verfügbar ist. Am Ende der gesamten Übung hast Du Deinen Spannungsbereich von 3,0 ... 4,2V auf einen Bereich von 0,0 ... 1,2V "transformiert" ... und damit - das fällt mir leider jetzt erst auf - Deine Aufgaben- stellung total verfehlt ... uppps ..... Viele Grüße Igel1 PS: Sorry - habe zuletzt wohl zu viel mit ESP8266-Bausteinen herumgespielt, bei den der AD-Wandler von 0...1V auflöst.
:
Bearbeitet durch User
Also: nächster Versuch - ganz anderer Ansatz: Du willst Deine Spannung 3 ... 4,2V auf 0 ... 5V abbilden/mappen. Dann ist ein sogenannter "Instrumentenverstärker" das Mittel Deiner Wahl. Das Prinzip wird hier erklärt: https://www.mikrocontroller.net/articles/Operationsverst%C3%A4rker-Grundschaltungen#Der_Instrumenten-Verst.C3.A4rker Wenn Du Dir die Details schenken möchtest, so suche Dir einfach einen Käfer Deiner Wahl beim Distributor Deiner Wahl aus, z.B. hier: http://www.reichelt.de/index.html?ACTION=446&LA=0;SID=96WBONTKwQATcAABtu%405se77da140ab17e82327be2755615e96fe So ein Instrumentenverstärker wirft Dir hinten auch immer schön die Spannungsdifferenz heraus, die Du mit dem Ding auch direkt zusätzlich verstärken - also auf den gewünschten Bereich spreizen - kannst. Der AD623 als "Single-Supply, Rail-to-Rail, Low Cost"-Instrumenten- verstärker wäre ganz gut für Deine Zwecke: http://cdn-reichelt.de/documents/datenblatt/A200/DATASHEET_AD623-AD-EN.pdf INA118 könnte auch gehen - ist aber teurer. Allerdings wirst Du an den oberen und unteren Grenzen (0V bzw. 5V) ggf. etwas Abstriche machen müssen, weil die Teile nicht alle bis zu Ihrer Versorgungsspannung hoch-/runterregeln können (Stichwort: "Output Swing"). Der AD623 käme z.B. nur von 0,01V ... 4,5V. So - ich hoffe, dass ich diesmal Deine eigentliche Fragestellung besser getroffen habe. Sorry für die beiden "Irrläufer" meiner vorigen 2 Posts. Viele Grüße Igel1
Ralf M. M. schrieb: > ADC Messbereich verschieben nach 3,0 - 4,2V Siehe hier: https://www.mikrocontroller.net/articles/Spannungsteiler#Spannungsteiler_mit_Offset.2C_passiv Zusätzlich brauchst Du noch eine einfache OPV- Verstärker- Schaltung
Ralf M. M. schrieb: > Hallo, > > ich weiß nicht, ob das Thema hier oder zu Analogtechnik gehört, aber ich > denke hier passt es durchaus auch. > > Ich möchte mit einem Arduino Mega, der mit 5V betrieben wird (nur um ein > konkretes Modell zu benennen, es kann genauso gut auch ein STM32F103 > sein) gerne eine Spannung im Bereich 3,0 V bis 4,2V messen. Sag doch einfach Li-Ion Spannungsüberwachung, spart uns hier das Rätselraten. Ich empfehle dir, die interne 2,54V Bandgap einzuschalten und die Akkuspannung mit einem 1:2 Spannungsteiler und Abblockkondensator an den ADC Port zu führen. Das ergibt Wertebereiche von 3/2/2,54*256= 151 und 211. Wenn dir die Auflösung davon zu gering ist, kannst du auch ne differentielle Messung machen indem du 3V an einen ADC Port hängst und deine Akkuspannung an einen anderen.
THOR schrieb: > Sag doch einfach Li-Ion Spannungsüberwachung, spart uns hier das > Rätselraten. An Li-Ion dachte ich auch bei den Werten. Ohne Veränderungen misst er ja schon mit einer Auflösung von ca. 5mV, bei 10Bit. Es stehen ca. 245 Messwerte zur Verfügung. Wenn die 1,2 Volt um die es eigentlich geht so verstärkt werden das der komplette Messbereich des uC von 5 Volt ausgenutzt wird sind es ca. 1mV Auflösung. Was nutzt das aber wenn die Genauigkeit nicht stimmt weil die Zusatzschaltung sowie die Referenzspannung für den ADC das Ergebnis verschieben? Wenn es wirklich um Li-Ion geht reichen die 5mV aus. Evtl. würde ich mit einer ext. Referenzspannung für den ADC arbeiten. @TO Wie genau möchtest Du den messen. Und, geht es um Li-Ion?
Oder du verwendest einen externen AD-Wandler, der eine wesentlich höhere Auflösung hat, dann kannst du getrost auf deine paar Bit verzichten.
THOR schrieb: > Ich empfehle dir, die interne 2,54V Bandgap einzuschalten Warum? Vielleicht, weil die besonders genau ist, weil der Hersteller ja die Spannung auf 2 Stellen hinter dem Komma angibt? Da empfehle ich doch einen PIC, da werden die 1.024V sogar auf 3 Stellen hinter dem Komma angegeben! (SCNR) Sorry, mit der internen Referenz ist die Auflösung des AD-Wandlers wohl das geringere Genauigkeitsproblem...
Thomas E. schrieb: >> Ich empfehle dir, die interne 2,54V Bandgap einzuschalten > > Warum? Vielleicht, ...weil sie eher zum gewünschten Meßbereich von 1,2V passt? > Sorry, mit der internen Referenz ist die Auflösung des AD-Wandlers wohl > das geringere Genauigkeitsproblem... Immerhin die "interne" besser als die 5V Betriebsspannung als Referenz sein.
So schwer ist die Berechnung eines nichtinvertierenden Operationsverstärkers nicht. Von 1,2 V Spannungshub am Eingang auf 5V (oder wie schon gesagt wurde besser etwas weniger) wäre eine Spannungsverstärkung von 5/1,2=4,167 Für den Spannungsteiler vom Ausgang über den inv. Eingang nach einer niederohmigen positiven Gleichspannung (statt GND) muss man noch 1 subtrahieren. Damit ist das Widerstandsverhältnis 1:3,1567 oder als Kehrwert 0,3158:1 Dazu findet man z.B. 47:150 oder noch näher 160:510 https://www.mikrocontroller.net/articles/E24-Teiler Statt einer sehr niederohmigen Referenz kann man auch zwei passende Widerstände nach GND und +V nehmen, da dauert die Berechnung etwas länger.
Harald W. schrieb: > ...weil sie eher zum gewünschten Meßbereich von 1,2V passt? Der sollte AFAIK 3,0 bis 4,2V sein. Mit ca. Halbierung von Referenz und Spannungsteilung 1:2 des Messignals kann man hier nichts gewinnen. Harald W. schrieb: > Immerhin die "interne" besser als die 5V Betriebsspannung > als Referenz sein. Es ist leicht, einen auf <1% genauen Spannungsregler zu finden. Ich würde mal vage behaupten, daß dann die 5V Versorgungsspannung deutlich genauer sind, als die +/-10% der internen Referenz...
Hier fehlt noch der Hinweis auf "Op amps for everyone" http://web.mit.edu/6.101/www/reference/op_amps_everyone.pdf In Kapitel 4.3 findest du die grundlegenden Schaltungen und Berechnungen zum Verschieben des Messbereichs. In Kapitel 12 die Berechnung der zu erwartenden Abweichungen vom Messwert.
Erst mal vielen Dank für die zahlreichen und umfangreichen Antworten, ich muss mir diese nun erst mal im Detail ansehen, möchte aber hier einige der Fragen beantworten. Ja in der Tat geht es in einem ersten konkreten Fall um die Überwachung der eigenen(!) Spannungs-Versorgung die per Step-Up-Converter aus einem LiPo Akku kommt, somit also gemeinsamer GND. Grundsätzlich geht es mir aber darum zu verstehen, wie ich sowas generell messen kann, da ich auch andere Planungen habe für die Versorgung mit Batterien und Step-Down oder Längsregler. Allen gemeinsam ist, dass sich der Messbereich immer deutlich oberhalb der "Null" befindet und ich die Auflösung des ADC eben so gut es mit vertretbaren Mitteln möglich ist ausnutzen möchte. Die Messungen selbst sind nicht so zeitkritisch, d.h. 5-10 Mal pro Sekunde reicht völlig aus. Die Umgebung wird auch (zumindest für die ersten Projekte) Raumtemperatur sein, also im Bereich 15 - 30°C (natürlich könnte das jeweilige "Projekt" sich etwas aufwärmen) Es geht mir hier vor allem darum zu lernen und zu verstehen, bis zu welcher Auflösung es wirklich Sinn macht, dies im Hobby Bereich umzusetzen. Kann gut sein, dass ich einfach die 10Bit von 0-5V nehme und gut ist.
Noch einer schrieb: > Hier fehlt noch der Hinweis auf "Op amps for everyone" > http://web.mit.edu/6.101/www/reference/op_amps_everyone.pdf > > In Kapitel 4.3 findest du die grundlegenden Schaltungen und Berechnungen > zum Verschieben des Messbereichs. > > In Kapitel 12 die Berechnung der zu erwartenden Abweichungen vom > Messwert. Super, genau sowas habe ich gesucht (auf deutsch gibt es sowas nicht, oder? Wobei englisch eigentlich kein Problem ist, bloß wenn es um den letzten Kniff geht, will ich sicher sein, dass ich den Satz dann immer wirklich korrekt verstanden habe) Und vielen Dank auch für die direkten Links in die Kapitel! Vor allem die Abbildung 4-12 zeigt mir, dass dies in der Theorie tatsächlich linear geht. Und Kapitel 12 wird die Lektüre für die nächsten Tage ...
Zu lustig wenn ueberwiegend die Generation "Antuino" mit ihrem nicht vorhandenen Analogwissen um sich wirft. Von Instrumentationsverstaerker bis Hilfsmasse... (Ausgenommen sind alle die Vorschlaege das ganze so zu lassen wie es ist, und der Subtrahierverstarker. Wobei die Generation "Antuino" natuerlich wieder Schwierigkeiten haben wird, den OPV mit einer ordentlichen Versorgung zu fuettern.)
@---: Hier meldet sich Generation "Antuino". Bitte erkläre, was am Instrumentenverstärker falsch ist. Bitte konkret und präzise. Und wenn Du schon dabei bist, so widerlege auch konkret und präzise das oben beschriebene Konstrukt mit der "Hilfsmasse". Letzte Bitte: Wenn Du anonym unterwegs bist, dann verzichte bitte darauf, über andere "abfällig" zu schreiben - das ist einfach kein guter Stil. Hier kannst Du technisch gerne wetteifern, aber nicht persönlich verletzend sein. Sorry - aber Generation "Antuino" ist so etwas wichtig. Gruß Igel1
Thomas E. schrieb: > Harald W. schrieb: >> ...weil sie eher zum gewünschten Meßbereich von 1,2V passt? > > Der sollte AFAIK 3,0 bis 4,2V sein. Mit ca. Halbierung von Referenz und > Spannungsteilung 1:2 des Messignals kann man hier nichts gewinnen. > > Harald W. schrieb: >> Immerhin die "interne" besser als die 5V Betriebsspannung >> als Referenz sein. > > Es ist leicht, einen auf <1% genauen Spannungsregler zu finden. Ich > würde mal vage behaupten, daß dann die 5V Versorgungsspannung deutlich > genauer sind, als die +/-10% der internen Referenz... Du hast wohl noch nicht viel mit der Entwicklung von Präzisions- Schaltungen zu tun gehabt?
Harald W. schrieb: > Du hast wohl noch nicht viel mit der Entwicklung von Präzisions- > Schaltungen zu tun gehabt? Ich entwickele meine Schaltungen so präzise, wie sie sein müssen. Nochmal: hier wurde dem TO vorgeschlagen, statt die 5V der Versorgungsspannung (selbst ein alter 7805 stabiliert die auf 5% genau) die interne Referenz des Mikrocontrollers zu benutzen. Diese hat, soweit ich es aus AVR Datenblättern kenne, eine deutlich höhere Ungenauigkeit, nämlich im Bereich von +/- 10%. Wie soll denn da eine genauere Messung zustandekommen, als mit der Versorgungsspannung als Referenz?
Thomas E. schrieb: > Wie soll denn da eine genauere Messung > zustandekommen, als mit der Versorgungsspannung als Referenz? mit Kalibrierung
THOR schrieb: > kannst du auch ne > differentielle Messung machen indem du 3V an einen ADC Port hängst und > deine Akkuspannung an einen anderen. der Beitrag wird zu Unrecht ignoriert
Thomas E. schrieb: > Nochmal: > hier wurde dem TO vorgeschlagen, statt die 5V der Versorgungsspannung > (selbst ein alter 7805 stabiliert die auf 5% genau) die interne Referenz > des Mikrocontrollers zu benutzen. Diese hat, soweit ich es aus AVR > Datenblättern kenne, eine deutlich höhere Ungenauigkeit, nämlich im > Bereich von +/- 10%. Wie soll denn da eine genauere Messung > zustandekommen, als mit der Versorgungsspannung als Referenz? Vielen Dank für den Hinweis, und ja es sind laut Datenblatt beim ATMega2560 tatsächlich fast 10% mögliche Abweichung bei den internen Referenzen und genau das ist auch der Punkt, denn ich mir genau anschauen wollte, nicht dass ich einen höheren Aufwand betreibe um das Messfenster zu verschieben und habe an anderer Stelle eine Ungenauigkeit, welche mir den vermeintlichen Genauigkeitsgewinn zunichte macht. Ein 7805 wird bei mir nicht wirklich funktionieren, da ich ja mit einem Step-Up arbeite, der die 5 Volt erzeugt, aber es gibt ja andere Möglichkeiten eine genauere Referenzspannung zu erzeugen. Ich schaue mich da mal um.
Walter S. schrieb: > THOR schrieb: >> kannst du auch ne >> differentielle Messung machen indem du 3V an einen ADC Port hängst und >> deine Akkuspannung an einen anderen. > > der Beitrag wird zu Unrecht ignoriert Er wird nicht ignoriert, nur muss ich mich hier erst noch genauer einlesen, bis ich genau verstehe wie es geht und dann ggf. dazu Rückfragen kann.
Ralf M. M. schrieb: > ...aber es gibt ja andere Möglichkeiten eine genauere Referenzspannung zu > erzeugen. Ich schaue mich da mal um. Nur ein Beispiel: https://www.reichelt.de/ICs-NE-STV-/REF-02-BP/3/index.html?ACTION=3&GROUPID=2915&ARTICLE=147325
Walter S. schrieb: >> Wie soll denn da eine genauere Messung >> zustandekommen, als mit der Versorgungsspannung als Referenz? > > mit Kalibrierung Logisch - dabei nicht vergessen, die Kalibrierung mehrfach bei verschiedenen Temperaturen durchzuführen und eine Temperatur-Korrekturkurve zu programmieren! Walter S. schrieb: >> differentielle Messung machen indem du 3V an einen ADC Port hängst und >> deine Akkuspannung an einen anderen. > > der Beitrag wird zu Unrecht ignoriert und wo kommen die 3V her? Ralf M. M. schrieb: > Ein 7805 wird bei mir nicht wirklich funktionieren, da ich ja mit einem > Step-Up arbeite, der die 5 Volt erzeugt, aber es gibt ja andere > Möglichkeiten eine genauere Referenzspannung zu erzeugen. Ich schaue > mich da mal um. Der 7805 war nicht als Bauteile-Empfehlung gedacht, sondern sollte nur zeigen, daß der immer noch besser wäre, als +/- 10% der internen Referenz. - obwohl er nicht gerade ein Muster an Präzision ist. Guck doch mal ins Datenblatt Deines Step Up Controllers. Auch da gibt es ICs, die deutlich genauer regeln, als der alte 7805.
Thomas E. schrieb: > und wo kommen die 3V her? Spannungsteiler aus 2 Widerständen 1% oder 0,1% an Uref.
Ralf M. M. schrieb: > und ja es sind laut Datenblatt beim > ATMega2560 Mal ne andere Frage so nebenbei: gibt es überhaupt einen Grund, einen Stepup-Wandler zu verwenden? Der Mega läuft doch ganz hervorragend direkt im gesamten Betriebsspannungsbereich der Li-Zelle!
Also, zu der Sache mit der differentiellen Messung: Soweit ich das beim Überfliegen des Datenblatts gesehen habe, verschiebt das Anklemmen des invertierenden Eingangs an ein festes Potential lediglich den Mittelwert des AD-Wandlers, d.h. mit 3V am invertierenden Eingang hat man bei einer Eingangsspannung von 3V am nichtinvertierenden Eingang einen Ausgabewert von 0x000, die Auflösung des AD-Wandlers (mV/Schritt) ändert sich aber nicht! Davon bekommt man also keine bessere Auflösung. Nun könnte man die Schritte über den "Gain"-Parameter kleiner machen, aber die nächste Gain-Stufe scheint dann x10 zu sein, das ist aber schon wieder viel zuviel! Außerdem, wenn man mal die "Absolute Accuracy" von Single Ended Channels und Differential Channels vergleicht, darf bezweifelt werden, ob die Verwendung von differentieller Messung wirklich der Genauigkeit zuträglich ist...
:
Bearbeitet durch User
Thomas E. schrieb: > Also, zu der Sache mit der differentiellen Messung: Soweit ich das beim > Überfliegen des Datenblatts gesehen habe, verschiebt das Anklemmen des > invertierenden Eingangs an ein festes Potential lediglich den Mittelwert > des AD-Wandlers, d.h. mit 3V am invertierenden Eingang hat man bei einer > Eingangsspannung von 3V am nichtinvertierenden Eingang einen Ausgabewert > von 0x000, die Auflösung des AD-Wandlers (mV/Schritt) ändert sich aber > nicht! Davon bekommt man also keine bessere Auflösung. Eine bessere Auflösung bekommt der TO hin wenn er das Messignal verstärkt und den kompletten Messbereich des uC ausnutzt. Oder er nimmt, wie auch schon vorgeschlagen, einen externen ADC. Ich meine eine externe Referenzspannung reicht vollkommen aus. Bei 10 Bit hat er eine Auflösung von ca. 5 mV. Das reicht auch für einen Li-Ion. Da muss dann auch nix verschoben werden. Umrechnen reicht.
:
Bearbeitet durch User
Thomas E. schrieb: > Ralf M. M. schrieb: >> und ja es sind laut Datenblatt beim >> ATMega2560 > > Mal ne andere Frage so nebenbei: gibt es überhaupt einen Grund, einen > Stepup-Wandler zu verwenden? Der Mega läuft doch ganz hervorragend > direkt im gesamten Betriebsspannungsbereich der Li-Zelle! Hmm, ich habe hier absichtlich nur ein(!) konkretes Beispiel gewählt, da ich gerne wollte, dass der Fokus auf dem eigentlichen "Problem" bleibt, also wie ich die Messung in den Bereich verschiebe. Tatsächlich nehme ich zum Basteln inzwischen meist einen STM32F0/1/4xx oder STM32L0xx aber eben auch den verpönten Arduino Uno / Mega oder Nano, je nachdem, ob ich gerade ein neues Display ausprobiere oder wie hier ein neues "Wissensfeld", dann ist der Arduino eben toll wegen der Libs und ich kann dann das Feld Stück für Stück erkunden und dann die Erkenntnisse z.B. auf einen STM32F103 umsetzen und dort dann ohne StdLib und HAL sondern direkt mit den Registern aus dem Datenblatt dann eine Umsetzung machen. Aber hätte ich das in meiner Eingangsfrage dazugeschrieben wäre der Thread wieder in Grundsatzdiskussionen über Arduino abgetrifftet und hätte das Thema nicht, wie geschehen, nur kurz gestreift. Aber Du hast sicherlich recht für den ATMega2560 bräuchte ich kein StepUp, aber für ein Projekt wie z.B. das hier https://www.youtube.com/channel/UCe8xO6ANyH9VR9KUkA85Spg ist es zu Beginn einfach hilfreich es auf 5V auszulegen, mit allen Nachteilen.
Ralf M. M. schrieb: > Vielen Dank für den Hinweis, und ja es sind laut Datenblatt beim > ATMega2560 tatsächlich fast 10% mögliche Abweichung bei den internen > Referenzen Solche Referenzen sollte man wirklich bei jedem einzelnen Exemplar nachmessen und Spannungsteiler mit dem echten Wert der Referenz berechnen. Alternativ kann man die Korrektur per Software machen. Das kann man dann auch automatisieren, wenn man eine grössere Serie baut. > Ein 7805 wird bei mir nicht wirklich funktionieren, Insbesondere wenn auch noch andere Schaltungsteile damit versorgt werden ist eine Betriebsspannung als Referenz technischer Unsinn. > aber es gibt ja andere > Möglichkeiten eine genauere Referenzspannung zu erzeugen. Wenn Dir die Genauigkeit der internen Referenz nicht reicht, solltest Du Dich besser gleich nach einem präziseren, externen AD-Wandler umsehen.
Harald W. schrieb: > Das kann man dann auch automatisieren, wenn man eine grössere > Serie baut. Ist im Augenblick nicht mal am Horizont absehbar oder angedacht Harald W. schrieb: >> aber es gibt ja andere >> Möglichkeiten eine genauere Referenzspannung zu erzeugen. > > Wenn Dir die Genauigkeit der internen Referenz nicht reicht, > solltest Du Dich besser gleich nach einem präziseren, externen > AD-Wandler umsehen. ist bereits geschehen: http://www.ebay.de/itm/172346369970 Und bis der eintrifft, werde ich mich intensiv mit den OpAmps auseinandersetzen. Die habe ich bereits inkl. Breadboard, +- Spannungsversorgung, Signalgenerator und "Oszi" zum Glück inzwischen da. Ist zwar etwas ungewohnt auch mal was zwischen 0 und 1 zu haben und einen "int" statt einen "uint" zu verwenden :-D
--- schrieb: > Zu lustig wenn ueberwiegend die Generation "Antuino" mit > ihrem nicht vorhandenen Analogwissen um sich wirft. > Von Instrumentationsverstaerker bis Hilfsmasse... Ja, krass was hier so alles an Falschem vom Stapel gelassen wurde, aber wenn man Arduino nicht schreiben kann, sollte man die Füsse stillhalten. > Ausgenommen sind alle die Vorschlaege das ganze so zu > lassen wie es ist, und der Subtrahierverstarker. Nicht ausgenommen, sondern auch unpassend, er hat ja nicht danach gefragt, und Subtrahieren reicht nicht. Ralf M. M. schrieb: > Deshalb die Frage wie verschiebe und vergrößere ich mein zu messendes > Fenster von 3,0V - 4,2V auf 0V - 5V. Mit einem einzelnen OpAmp. Nimmst du einen Rail-To-Rail OpAmp wie AD820, kann der fast 0V und fast 5V liefern wenn er selbst mit 0V/5V versorgt wird. Ansonsten brauchst du für den OpAmp eine negativere und positivere Versorgungsspannung, z.B. -5V und +10V für einen OP07. Die Schaltung ist:
1 | +5V +Ub |
2 | | | |
3 | R1 | |
4 | | | |
5 | +---(--R2--+ |
6 | | | | |
7 | ------(--|+\ | |
8 | | | >----+-- |
9 | +--|-/ |
10 | | | |
11 | 100k | |
12 | | | |
13 | 0V -Ub |
Die Vorgabe 3V -> 0V und 4.2V -> 5V sagt, bei 3.95V geht dasselbe rein wie rauskommen soll. R1 muss also 26.6k haben damit an dem 10k Widerstand und damit am anderen OpAmp Eingang auch 3.95V anliegen. R1 parallel zu 100k hat 21k. Die Verstärkung muss 3.95/0.95 = 4.16 betragen, also R2 3.16 mal so gross sein, also 66.36k. Damit das Ergebnis genau genug für den (5V/1024=5mV) / 4.16 ~= 1mV wird, sollte der OpAmp eine Offsetspannung besser als 0.5mV haben (die genannten haben) und die Widerstände besser als 0.05% sein und natürlich die 5V Referensspannung ausreichend sein. Aber unsere Arduinokinder können nicht mal Grundschulrechenarten, du wirst sie gleich jammern hören, oder dummschwätzen, das können sie eher, dabei ist eine der einfachsten OpAmp Schaltungen die es gibt, das allererste was man lernen und können sollte.
> Ja, krass was hier so alles an Falschem vom Stapel gelassen wurde, aber > wenn man Arduino nicht schreiben kann, sollte man die Füsse stillhalten. Ich mag nur das phoese Wort nicht schreiben.
Thomas E. schrieb: > und wo kommen die 3V her? und wo kommen sie bei einem Subtrahierer her? Thomas E. schrieb: > die Auflösung des AD-Wandlers (mV/Schritt) ändert sich aber > nicht! Davon bekommt man also keine bessere Auflösung. wenn du eine kleinere Referenzspannung nimmst schon MaWin schrieb: > und die Widerstände besser als 0.05% sein wo bekomme ich die her?
Karl schrieb: > Mit entsprechend teuren opamps vielleicht. Mit Standard Ware holst du > dir schnell etliche 10 mV Offset. Der Offset ist egal den kann man naher wieder per Software herausrechnen.
Harald W. schrieb: > Wenn Dir die Genauigkeit der internen Referenz nicht reicht, > solltest Du Dich besser gleich nach einem präziseren, externen > AD-Wandler umsehen. Der interne ADC ist genau genug, den brauchste nicht ersetzen. Da muss dann nur ne genaue Vref her. Das ergibt dann 10mV Auflösung und die Genauigkeit hängt hauptsächlich von Vref ab. Ich hab mal nen Li Ion UVLO gebaut wo einfach ein 3V Festspannungsregler die Referenz war, das ist auch genau genug. Der hohe Innenwiderstand der Zellen war ne viel größere Fehlerquelle als die Vref.
Walter S. schrieb: > wo bekomme ich die her? Von einem Elektronikhändler http://www.voelkner.de/products/34265/SMD-Widerstand-100k-Ohm-0805-0.05.html oder Arrow, Digikey und wie sie alle heissen. Ja, bei Reichelt nur 0.1%, so daß dein letztes Bit im A/D-Wandler nicht mehr stimmt. 1% Widerstände machen jedoch das Messergebnis so schlecht, daß man besser auf die Verstärkung verzichtet hätte. Auch dann reicht die Messung problemlos nicht nur zur Unterspannungsabschaltung einer LiIon, sondern so gar zur Ladeschlusserkennnug bei entsprechend genauer Referenzspannung, und erst recht zur Ladezustandeserkennug die sowieso mehr als 10% daneben liegt wenn man von der Spannung auf den Ladezustand schliessen will.
Jan W. schrieb: > Karl schrieb: >> Mit entsprechend teuren opamps vielleicht. Mit Standard Ware holst du >> dir schnell etliche 10 mV Offset. > > Der Offset ist egal den kann man naher wieder per Software > herausrechnen. Die Offsetdrift auch?
Der ATmega2560 kann differentiell messen mit 1,1V Referenz. Du brauchst also nur noch nen Spannungsteiler 1,2V -> 1,1V, z.B. 1k + 11k.
Peter D. schrieb: > Der ATmega2560 kann differentiell messen mit 1,1V Referenz. Und wozu? Um die Genauigkeit des AD-Wandlers herabzusetzen? Guck doch mal ins Datenblatt!
MaWin schrieb: > Die Vorgabe 3V -> 0V und 4.2V -> 5V sagt, bei 3.95V geht dasselbe rein > wie rauskommen soll. Hallo MaWin, auf den Verstärkungsfaktor von 4,16 komme ich auch. Wenn aber 3,95V reingehen, die gemmessene Akkuspannung, können nicht 3,95V rauskommen. Ohne jetzt nachzurechnen muss es in Richtung > 4,5 Volt gehen. Oder mache ich jetzt einen Denkfehler?
Walter S. schrieb: > (3.95-3)*4.16 = ? Braucht man für solch komplizierte Berechnungen nicht mindestens den Bachelor? :-)
Harald W. schrieb: > Braucht man für solch komplizierte Berechnungen > nicht mindestens den Bachelor? :-) >> Der Offset ist egal den kann man naher wieder per Software >> herausrechnen. Harald W. schrieb: > Die Offsetdrift auch? Gegenfrage: Muß man für solche saublöden Antworten Ingenieur sein?
Brad Hard schrieb: > Gegenfrage: Muß man für solche saublöden Antworten Ingenieur sein? Du beziehst Dich darauf? Der Offset ist egal den kann man naher wieder per Software herausrechnen.
Harald W. schrieb: > Walter S. schrieb: > >> (3.95-3)*4.16 = ? > > Braucht man für solch komplizierte Berechnungen > nicht mindestens den Bachelor? :-) Ne, braucht man nicht. Ich bin aber auch nicht so unfehlbar wie Du und traue mich zu fragen wenn ich mal ein Brett vor dem Kopf habe. Hast du das noch nie erlebt das du stundenlang über ein total simples Problem nachdenkst oder einen Fehler in einer Schaltung suchst - und dann kommt ein Kollege vorbei und zeigt sofort auf den Fehler? Mit dem kurzen Kommentar von Walter S. viel es mir dann wie Schuppen aus den Augen. Dein langer Kommentar darauf war einfach nur überflüssig.
:
Bearbeitet durch User
Hi Leute, ich hatte in einem Post weiter oben geschrieben: > Du willst Deine Spannung 3 ... 4,2V auf 0 ... 5V abbilden/mappen. > > Dann ist ein sogenannter "Instrumentenverstärker" das Mittel > Deiner Wahl. Das Prinzip wird hier erklärt: > https://www.mikrocontroller.net/articles/Operation... Damit ich wieder gut schlafen kann, muss ich meinen obigen Tipp noch etwas geraderücken, denn man kann so einen Instrumentenver- stärker in diesem Fall nicht ohne Klimmzüge nutzen. Intern verstärkt so ein Instrumentenverstärker die Differenz- spannung an seinen Eingängen nämlich symmetrisch zum "Mittelpotential", welches gedacht zwischen seinen Eingängen anliegt (siehe z.B. http://elektroniktutor.de/analogverstaerker/instrum.html). Und genau dort liegt das Problem: Lege ich am -IN Eingang via Referenzspannungsquelle eine Fixspannung von 3V an und ist der Akku voll geladen (4,2V), so liegt die gedachte "Mittelspannung" bei 3,6V. Will ich die Spannungsdifferenz auf 5V verstärken, so wird im Instrumentenverstärker intern am Ausgang der beiden internen Eingangs-OpAmps eine Spannung erzeugt, die +2,5V bzw. -2,5V von der gedachten "Mittelspannung" entfernt liegt. Das wären dann 3,6V + 2,5V = 6,1V bzw. 3,6V - 2,5V = 1,1V. Während die 1,1V ja noch kein Problem darstellen, liegen die 6,1V locker über der Versorgungsspannung des Instrumenten- verstärkers. Das ist nicht möglich. Der Instrumentenverstärker wird daher Spannungen im Bereich 4,2V (und noch einiges darunter) maximal verzerren. Kurzum: wenn's halbwegs funktionieren soll, muß zwischen den Eingängen des Instrumentenverstärkers im Maximalfall (Akku voll) eine gedachte "Mittelspannung" von 2,5V anliegen. Der -IN Eingang müßte dann auf 1,9V und der +IN Eingang auf 3,1V liegen. Dann erreicht die Spannung hinter den beiden internen Eingangs-OpAmps genau 5V bzw. 0V (nur beim "idealen Instrumenten- verstärker" - in Realität ist oftmals schon bei einigen 100mV Abstand von 5V bzw. 0V Schluß.) Beläßt man -IN Eingang bei 1,9V, und verkleinert die Spannungen an +IN so verkleinert sich auch die gedachte "Mittelspannung". Es passiert aber trotzdem nichts Schlimmes, weil auch die verstärkte Spannung nicht mehr so groß ist und hinter den beiden Eingangs-OpAmps alles innerhalb der Betriebsspannungsgrenzen bleibt. Somit klappt die Idee mit dem Instrumentenverstärker nur, wenn der -IN Eingang fix auf 1,9V gelegt wird und über einen Widerstands- teiler die max. 4,2V auf 3,1V an +IN Eingang heruntergeteilt werden. Spätestens dann sind aber so viele Widerstände im Spiel, dass ich die erhöhte Auflösung des AD-Converters wieder an die Widerstands- toleranzen und die Nichtlinearität des Instrumentenverstärkers verliere (zugegeben: ich hab's nicht genau nachgerechnet, ist eher eine Vermutung). Somit lautet mein Tipp eher: Brute Force Methode: Versorge Deinen STM32F103 mit einer 2,5V Referenzspannungsquelle für die ADC-Referenz (z.B. TL431). Dann teilst Du die 4,2V per Widerstandsteiler auf 2,5V herunter. Bei leerem Akku liegst Du dann bei 3V * 2,5V/4,2V = 1,786V. Dir bleiben somit mit den 12 Bits des STM32F103 insgesamt 2^12/2,5*(2,5-1,786) = 1170 Steps, um Spannungen zwischen 3 und 4,2V auszulösen. Das sind ca. 1,0mV/Step. Wirfst Du nochmals 2 Steps ADC-Ungenauigkeit und 50ppm/C Ungenauigkeit für Deine 2,5V Referenz in den Ring, und nochmals 50ppm/C für Deinen 0,1% Spannungsteiler so liegst Du bei normalen Zimmertemperaturschwankungen immer noch unter 5mV Ungenauigkeit. Wegen Verwendung des TL431 und der 0,1% Widerstände mußt Du vorab kalibrieren, weil allein der TL431 mit +-45mV Toleranz daherkommt. Allerdings mußt Du mit deutlich unter 0,1% Genauigkeit kalibrieren, weil Du sonst schon bei der Kalibrierung die +-5mV verspielst. Notfalls tut's auch die interne Referenz, die aber mit 100ppm/C nicht gerade rekordverdächtig temperaturstabil ist. Kalibrierung ist natürlich auch hier angesagt. Hoffe, ich habe alles bedacht - bin kein Profi auf diesem Gebiet. Daher bitte alles vor Gebrauch gut gegenprüfen. Viele Grüße Igel1
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.