Hallo, ich möchte mit einem EPS8266 am ADC-Eingang (0 V ... 1 V) einen Widerstand 5 Ω ... 95 Ω messen. Damit der Messtrom durch den Widerstand nicht dauernd fließt, möchte ich diesen durch einen der GPOs einschalten, und zwar direkt, ohne Transistorstufe. Die GPOs können 12 mA liefern. Also habe ich einen Spannungsteiler mit 270 Ω und dem zu messenden Widerstand gemacht, damit komme ich auf 3,3 V / 275 Ω = 12 mA. Geht also. Meine Fragen beziehen sich nun auf die Steuerung des Messstroms: - Sollte ich ihn schon vor der Messung einschalten, oder kann Einschalten und Messung so schnell hintereinander passieren, wie es der Code zulässt? - Wenn vorher: Wie lange? Also, wie lange nach Einschalten warten, ehe ich die Messwerte nehme? - Dann würde ich vielleicht mehrere Loopdurchgänge lang messen und den Median nehmen, oder? Wie viele wären etwa angeraten? Oder meint Ihr, es reicht eine Einzelmessung? Vielen Dank schonmal und viele Grüße!
:
Bearbeitet durch User
Ich würde schon 1ms warten, bis die Werte gültig sind. Setzt aber auch voraus, daß Dein Meßwiderstand nicht nennenswert kapazitiv ist. Über 4-8 Werte mitteln (z.B. im Systemtimer mit 1ms), wenn Dein Widerstand sich sich über ein paar Millisekunden nicht groß ändern wird. Dann hast Du nach etwa 10ms ein brauchbares Ergebnis.
Hi So einfach wird deine Rechnung nicht. Der Schalter im uC hat auch Verluste. Ich treibe ungern eine Last direkt mit einem uC. Ein kleiner Mosfet kostet nicht die Welt Und schützt den Controller. Der Einschaltvorgang ist weniger dein Problem. Das bekommt man mit ein wenig Software hin. Problematischer ist, dass du den Gesamtwiderstand nicht exakt kennst. Auch deine 3,3V sind nicht exakt. Du müsstest erst deine notwendige Genauigkeit spezifizieren und Prüfen, ob du mit deinem Ansatz hinkommst. Was ganz gut klappt: Die 270R als Präzisionswiderstand ausführen und die Spannung über den messen. Dann kennst du den Strom. Über die Spannung am unteren Ende kannst du dann den Widerstand berechnen. Das notwendige Timing steht im Datenblatt des uC. In den ADC steht ein kleiner Kondensator, der bei jedem Sample aufgeladen wird. Je nach Impedanz deiner Quelle kann das Fehler machen. Man könnte Versuchen, das System zu modellieren. Einfacher wird es vermutlich sein nachzumessen, wie lange dein System braucht, bis es eingeschwungen ist. Dann noch ein wenig Reserve drauf und gut. Dann einschalten, warten und Sampeln. Was du dann noch in Software machen musste, hängt von den Ansprüchen und der Qualität des Systems ab.
> Der Schalter im uC hat auch Verluste. Wenn da weitere Verluste irgendwo sind, dann wird mein Strom ja KLEINER, nicht größer. Wo ist dann die Gefahr für den Output? Wenn das Datenblatt sagt, der Ausgang kann 12 mA, dann kann er das doch auch. Und wenn ich auf meine 270 Ω 3,3 V gebe (wo sollten mehr herkommen?), dann fließen da auch nur die 12 mA. Und mein zu messender Widerstand ist auch nur in den allerseltensten Fällen wirklich 5 Ω, fast immer größer. Also ich sehe hier keine ernste Gefahr. Leitungswiderstände kommen auch noch dazu, sind ebenfalls nicht eingerechnet... > Problematischer ist, dass du den Gesamtwiderstand > nicht exakt kennst. Auch deine 3,3V sind nicht exakt. Macht ja nichts, muss ja nicht exakt sein. Am Ende wird (wie jedes Messgerät) natürlich noch kalibriert. Der zu messende Widerstand steht eh für eine ganz andere Messgröße... > Du müsstest erst deine notwendige Genauigkeit spezifizieren und Prüfen, > ob du mit deinem Ansatz hinkommst. Und was sagt Dir, dass ich das nicht getan habe? Wir schweifen ab... das war ja alles nicht die Frage. Ich weiß auch, dass ich die Einschwingzeit messen kann. Aber wenn hier jemand Dauemenwerte nennen kann, ist doch super. Danke Nop.
Tilo schrieb: > Auch deine 3,3V sind nicht exakt. Ich kenne den ESP nicht, aber die Beschreibung P. K. schrieb: > ADC-Eingang (0 V ... 1 V) interpretiere ich so, dass der eine interne Referenzspannung hat. 5..95 Ohm an 3V3 mit 270R davor ergibt einen Bereich von 60..900mV, das würde passen. Natürlich kann man sich auf die 3V3 nicht verlassen, damit hast Du recht. Es wäre aber kein Hexenwerk, den Teiler einzuschalten und mit einem zweiten Analogport per Teiler die tatsächlich anliegende Spannung zu messen. Eine andere Variante wäre, den Vorwiderstand anders auszulegen und mit 3V3 als Refernz zu arbeiten - dann würden sich Abweichungen der Betriebsspannung von selbst rausrechnen, Stichwort "ratiometrisch". Kommt auf die benötigte Auflösung an, die bei 3V3-Referenz natürlich deutlich schlechter wäre. Der ESP-32 steht in dem Ruf, analog ziemlich ungenau zu sein, ist der ESP-8266 besser? Wird der ESP benötigt oder könnte es auch ein AT328 werden?
P. K. schrieb: > Ich weiß auch, dass ich die Einschwingzeit messen kann. Aber wenn hier > jemand Dauemenwerte nennen kann, ist doch super. Gibt es einen besonderen Grund, diese Zeit zu wissen? Miss z. B nach 1s und Du bist vermutlich auf der sicheren Seite.
>> Problematischer ist, dass du den Gesamtwiderstand >> nicht exakt kennst. Auch deine 3,3V sind nicht exakt. > > Macht ja nichts, muss ja nicht exakt sein. Am Ende wird (wie jedes > Messgerät) natürlich noch kalibriert. Der zu messende Widerstand steht > eh für eine ganz andere Messgröße... Das Problem ist nicht der Offset. Das Problem sind die Störungen, die voll in dein Messergebnis eingehen. Sowas bekommt man nicht wegkalibriert. >> Du müsstest erst deine notwendige Genauigkeit spezifizieren und Prüfen, >> ob du mit deinem Ansatz hinkommst. > > Und was sagt Dir, dass ich das nicht getan habe? > Wir schweifen ab... das war ja alles nicht die Frage. Die Art deiner Frage, die Art wie du hier gerade antwortest. Hättest du es getan, wären deine Fragen beantwortet. > Ich weiß auch, dass ich die Einschwingzeit messen kann. Aber wenn hier > jemand Dauemenwerte nennen kann, ist doch super. Da keiner deine Schaltung Und Anforderung kennt, wird das schwer. Ich wünsche dir viel Glück, du wirst es brauchen.
P. K. schrieb: > > Damit der Messstrom durch den Widerstand > nicht dauernd fließt, möchte ich diesen durch einen der GPIOs > einschalten, und zwar direkt, ohne Transistorstufe. Die GPIOs können 12 > mA liefern. Mit Voh min = 0,8 x Vcc, also bei 3,3 V irgendwas zwischen 2,64 V und 3,3 V. Nicht sehr genau.
Der ADC des ESP ist ziemlich nicht-linear. Einige Leute haben berichtet, dass man geringe Spannungen unter 0,1V gar nicht messen kann. Andere konnten es. Scheint vom Glück abzuhängen.
Der Strom sollte stabil sein. Probier's doch einfach. Ein paar mikrosekunden wuerde ich schon geben. Mitteln, nur wenn es etwas bringt. Probier's aus. Vielleicht 2, 4, 8, 16 Stueck.
Werd ich mal machen. Hab ja jetzt zwischen der ganzen Off-Topic-Abschweifung auch paar Anhaltswerte bekommen, vielen Dank!
:
Bearbeitet durch User
Wolle G. schrieb: > P. K. schrieb: >> Ich weiß auch, dass ich die Einschwingzeit messen kann. Aber wenn hier >> jemand Dauemenwerte nennen kann, ist doch super. > Gibt es einen besonderen Grund, diese Zeit zu wissen? Meinerseits nicht, frag Thilo, er scheint ja meine "extrem hohen" Genauigkeitsanforderungen bestens zu kennen. ;-) > Miss z. B nach 1s und Du bist vermutlich auf der sicheren Seite. 1 s finde ich schon recht lang, das verbraucht vielleicht unnötig viel Strom. Ich werde erstmal weniger probieren...
> Die Art deiner Frage, die Art wie du hier gerade antwortest. Du bist gerade sehr polemisch. Das bringt nichts. > Hättest du es getan, wären deine Fragen beantwortet. Moment, Deine Aussage lautet also, hätte ich meine Genauigkeit spezifiziert, wüsste ich, welche Wartezeit ich benötige? Dann komm doch mal von Deinem hohen Ross herab und lass uns alle wissen, wie ich die Wartezeit aus meiner Genaugikeitsanforderung ermitteln kann. DAS wäre eine Antwort auf die Frage. Vielleicht solltest Du es einfach lassen. Dir scheint die Erfahrung mit dem ESP8266 zu fehlen, um pragmatische Wartezeitenwerte nennen zu können, mit denen man ganz gut arbeiten kann. Dass ich Einschwingzeiten messen kann oder ein Systemmodell machen kann, weiß ich auch, dafür brauchst Du hier keinen Applaus erwarten. Hilfst Du damit mehr, als jemand, der sowas schonmal gemacht hat und Werte nennen kann? Nein.
Du könntest zusätzlich zu dem Vorwiderstand von 270 Ohm auf der anderen Seite auch noch einen Serienwiderstand einbauen, insbesondere damit Du für kleine Meßwerte aus dem ungünstigen ADC-Bereich ganz unten rauskommst. Dieser Widerstand sollte sich an Deinem minimalen Meßwiderstand orientieren, bei 5 Ohm also vielleicht so 10 Ohm. Dann wäre der Spannungsteiler am ADC-Eingang bei minimal 5 Ohm Meßwiderstand also 15 Ohm, was 174 mV entspräche.
Achtung: Wenn man den ADC des ESP8266 zu oft ohne Pausen hintereinander abfragt, stürzt das Ding ab. Was genau "zu oft" ist, weiß ich nicht. Ich bin da zufällig drauf gestoßen und fand dann zahlreiche Bestätigungen des Effekts im Internet.
P. K. schrieb: > Und wenn ich auf meine 270 Ω 3,3 V gebe (wo sollten mehr herkommen?), > dann fließen da auch nur die 12 mA. Es geht nicht um "mehr", sondern bei 12mA kommen deutlich weniger als 3,3V aus dem Pin. Denn der Mosfet, der im IO-Treiber +3,3V zum Pin durchdschaltet, hat im eingeschalteten Zustand schon locker 50..100 Ohm. > Wenn das Datenblatt sagt, der Ausgang kann 12 mA, dann kann er das doch > auch. Seltsame Logik. Und was sagt dann das Datenblatt, was dann bei einem Laststrom von 12mA für eine Spannung am Pin ist? Und meinst du, diese Spannung wäre dann in irgeneiner Weise "konstant"? Oder könnte es sein, dass sich der Bahnwiderstand des Mosfets wie üblich mit der Chiptemperatur ändert. P. K. schrieb: > wie ich die Wartezeit aus meiner Genaugikeitsanforderung ermitteln kann. Wenn die Schaltung so dermaßen niederohmig ist, dann kannst du ein paar µs nach dem Einschalten des Pins messen. P. K. schrieb: > - Sollte ich ihn schon vor der Messung einschalten, oder kann > Einschalten und Messung so schnell hintereinander passieren, wie es der > Code zulässt? Probiers aus. Schlimmstenfalls musst du deinen Code ein wenig anpassen, dass er nach dem Einschalten des Pins noch kurz was anderes tut und dann erst misst.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > P. K. schrieb: >> Und wenn ich auf meine 270 Ω 3,3 V gebe (wo sollten mehr herkommen?), >> dann fließen da auch nur die 12 mA. > Es geht nicht um "mehr", sondern bei 12mA kommen deutlich weniger als > 3,3V aus dem Pin. Denn der Mosfet, der im IO-Treiber +3,3V zum Pin > durchdschaltet, hat im eingeschalteten Zustand schon locker 50..100 Ohm. Verstehe, geht also auch um die Messgenauigkeit. Der Beitrag, auf den ich mich bezog, war im Kontext "[externer MOSFET] schützt den Controller". Der Effekt des Widerstands des Ausgangsmosfets auf meine Messung würde sich ja im Rahmen der Kalibrierung dann auch im Wesentlichen auflösen. Wenn der Messbereich dann zu klein wird, werde ich es sehen. Temperaturabhängigkeiten werde ich dann noch sehen - hab auch einen Temoperatursensor in Petto, um das zu beobachten. Aber ich denke, dass dies meine Genauigkeitsanforderungen nicht bricht. Ich wollte nur sichergehen, dass ich einerseits nicht zu lange warte und unnötig viel Strom verbrauche (1 s), andererseits, nicht die ersten Mikrosekunden (?) Quatsch messe, ehe mein Aufbau sich eingepegelt hat. Danke auch für den Hinweis der Dauermessung. Wenn wir hier aber von vielleicht 8 ... 10 Messungen hintereinander reden (dann vielleicht 10 Minuten Pause), sollte das noch nicht den Rahmen sprengen, oder? Danke Euch sehr, einiges hat sehr geholfen, anderes war wiederum unnötige Klugscheißerei (https://de.wikipedia.org/wiki/Besserwisser)... Wem die Jacke passt, der zieht sie sich an. ;-)
P. K. schrieb: > Der Effekt des Widerstands des Ausgangsmosfets auf meine Messung würde > sich ja im Rahmen der Kalibrierung dann auch im Wesentlichen auflösen. Nur, wenn du für eine konstante Versorgungsspannung und Konstante Chip-Temperatur sorgst und außerdem die Stromaufnahme konstant ist. Jeder andere Pin, den du belastest, zieht intern die Versorgungsspannung ein bisschen herunter. Du müsstest auf jeden Fall den WLAN Teil während der Messung deaktivieren, damit dabei etwas halbwegs reproduzierbares heraus kommt. Dazu wiederum musst du jeweils zweimal rebooten. Das macht keinen Spaß.
Schon witzig, schreibt vom hohem Ross, weiss aber alles besser. Vielleicht merkst du so langsam, das der Einschwingvorgang nicht dein Problem ist. Daher auch die Frage nach der Spezifikation. Wenn dir 5 Bit reichen kann man die Sache ganz anders angehen, als wenn man die 10 Bit auch nutzen will (Wobei bei gemeinsamer Versorgung von analog und digital und ohne echte Referenz vermutlich nur noch 8Bit übrig bleiben). Durch Kalibrieren lassen sich nur statische Fehler sicher kompensieren, z.B. Die Toleranz deines Messwiderstands. Alles andere wird schwer, da gabs schon genug Hinweise. Daher schreibe doch kurz Zusammen, was du braucht, z.B. eine Auflösung von 0,1Ohm, zeitliche Vorgaben und eine Skizze der Schaltung. Die Schaltung geht man dann durch und überlegt sich, welchen Einfluss jede Komponente haben kann.
Dazu benötige ich aber nicht die Hilfe. Einfach beim Thema bleiben...
P. K. schrieb: > Meine Fragen beziehen sich nun auf die Steuerung des Messstroms: > - Sollte ich ihn schon vor der Messung einschalten, oder kann > Einschalten und Messung so schnell hintereinander passieren, wie es der > Code zulässt? > - Wenn vorher: Wie lange? Also, wie lange nach Einschalten warten, ehe > ich die Messwerte nehme? > - Dann würde ich vielleicht mehrere Loopdurchgänge lang messen und den > Median nehmen, oder? Wie viele wären etwa angeraten? Oder meint Ihr, es > reicht eine Einzelmessung? Welchen Aufwand man bei der Messung treibt, hängt davon ab, welche Genauigkeit gefordert ist und wie das Signal gestört ist. Deine Fragen lassen sich also ohne Informationen nicht beantworten.
P. K. schrieb: > einen Widerstand 5 Ω ... 95 Ω riecht nach Tankgeber. P. K. schrieb: > - Wenn vorher: Wie lange? so 3-5 Tau Einschwingzeit wirst Du schon brauchen. Ich gehe mal davon aus daß noch ein Tiefpaßfilter am Analogeingang sitzt um sporadische Störungen zu unterdrücken. Ansonsten: Ich würde mir Gedanken machen wann ich überhaupt sinnvolle Werte messen kann. Also nicht bei starker Beschleunigung/Verzögerung bei Querbeschleunigung in der Kurve oder steiler Bergab/Bergauffahrt. Also eher zu passenden Zeitpunkten messen und dann über einen längeren Zeitraum mitteln. Tilo schrieb: > Wenn dir 5 Bit reichen Wohl eher 2 Bit: Tank voll, halbvoll, Reserve oder leer. P. K. schrieb: > meine 270 Ω 3,3 V gebe (wo sollten mehr herkommen?) ich würde mir Gedanken machen was passiert wenn auf dem Eingang statt des Tankgebers Batteriespannung aus versehen angeklemmt wird. Gruß Anja
Anja schrieb: > riecht nach Tankgeber. riechen ist gut. Wie oben schon mal angedeutet, wäre es für die Helfenden einfacher, wenn sie wüssten, was das Ganze werden soll. „Geheimniskrämerei“ ist oftmals leider das Grundübel, warum man nicht zum Erfolg kommt
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.