Hallo zusammen, für mein privates Projekt verwende ich einen ESP32 (S3) Mikrocontroller mit Arduino und ich möchte mit Hilfe eines Spannungsteilers und eines D/A Wandlers einen dynamischen Widerstand berechen... Die Spannung lese ich bei Arduino mit Hilfe der Funktion analogReadMilliVolts zyklisch ein und lasse sie mir per Bluetooth ausprinten.... Der ESP32 verträgt allgemein nur eine Inputspannung von 3,3V Wenn ich jetzt den entsprechen Pin "offen" ohne definierten Pegel in der Luft hängen lasse bekomme ich einen konstant einen Wert von 3152-> 3,15 Volt...lege ich den Pin auf den 3,3V ausgang vom ESP32S3 Board lese ich den selben Wert ein... Soweit so gut (oder schlecht) ich lese also bei soll 3,3V eine Spanung von 3,15V ein.... Wenn ich jetzt die exakt identische Software auf einen 2ten ESP32 S3 flashe lese ich bei dem eine Spannung von 3173-> 3,17 Volt aus.... ebenso egal ob frei hängend oder auf 3,3Volt gelegt.. Meine Fragen: 1) hat Jemand anders schon sowas beobachtet? 2) hat jemand eine Idee wie ich diesen dynamischen OFfset justieren kann
Die ADC des ESP sind an den Grenzwerten ungenau. https://docs.espressif.com/projects/esp-idf/en/v6.0.1/esp32/api-reference/peripherals/adc/index.html Und offene Pins sind nur Antennen. Macht eigentlich keinen Sinn darüber zu reden. Ich rate zu einem verlässlichen externen ADC.
:
Bearbeitet durch User
Tobias L. schrieb: > Meine Fragen: > > hat Jemand anders schon sowas beobachtet? Wo kommt da jetzt irgend ein D/A-Wandler ins Spiel?
Ich bin mir sicher, dass bei 3,3V Versorgung der ADC nicht soweit messen kann. Der wird irgendwo bei 2V sein Maximum haben.
Beim esp8266 musste man wenn ich mich richtig erinnere beim ADC auch noch weitere Dinge beachten.... Weil der ADC dort auch fürs WiFi genutzt wird.... Ob das natürlich beim esp32 auch noch so ist? Sagt das Datenblatt dazu irgendwas?
Martin P. schrieb: > Ob das natürlich beim esp32 auch noch so ist? Sagt das > Datenblatt dazu irgendwas? Natürlich! Einer der beiden ADCs ist für WiFi zuständig.
Leute - Tobias fragt nach einem D/A Wandler. Tobias L. schrieb: > ... ich möchte mit Hilfe eines Spannungsteilers und eines D/A Wandlers Tobias, vielleicht zeigst du einmal einem Schaltplan, von dem, was du da vor hast.
Ich meinte natürlich eine A/D wandlung...sollte aus dem kontext klar sein.
Die versorgung liegt bei 5v maximal inout voltage ist 3.3v
Laut dem bspcode im arduino nicht.. Ich bin aber offen für tips
Ich möchte an mehreren pins über einen spannungsteiler temperatursensoren auslesen.. Ich kann verstehen dass mehr infos gut fürs Verständnis sind, aber sollten doch für das eigentliche problem egal sein. Oder? Ich betreibe den esp32s3 mit 5v. Ich lese einen analog input auf 3.3V Und lese bei einem esp32s3 3.15V konstant und beim anderen konstant 3.17V... Das heisst also dass ich bei jedem esp32s3 eine unterschiedliche Abweichung habe. Was dahinter hängt ist doch erstmal egal .
AD-Wandler können ziemlich tricky sein. Früher, als es nur Mikroprozessoren und dedizierte AD-Wandler ICs gab, oder man gar einen AD-Wandler als "IC-Grab" aus Operationsvertsärkern und digital ICs aufbaute, wurde auf derartige Feinheiten und Unzulänglichkeiten mehr eingegangen. Der Analogeingang kann recht hochohmig sein, allerdings beim Sampeln impulsweise Strom ziehen. Da nutzt es dir herzlich wenig, wenn er gemittelt 1µA zieht, für eine ms aber das Tausendfache. Ein (hochwertiger) Integrationskondensator ist im Zweifelsfall immer eine gute Idee. Der "beruhigt" ebenfalls den Eingang. natürlich kann man 3 Cent sparen und per Software aus 50 Werten das statistische Mittel bilden. Sind vielleicht 5 Zeilen im Code, aber man sollte abschätzen können, woher ein Problem stammt und wie man dem (möglichst schon präventiv) begegnen kann.
Rainer W. schrieb: > Leute - Tobias fragt nach einem D/A Wandler. > > Tobias L. schrieb: >> ... ich möchte mit Hilfe eines Spannungsteilers und eines D/A Wandlers > > Tobias, vielleicht zeigst du einmal einem Schaltplan, von dem, was du da > vor hast. Sorry meine letzte Antwort war auf den post bezogen.. Der schaltplan drum rum sollte doch eigentlich egal sein... P.s. ich arbeite sowohl mit dem esp32 als auch mit dem esp32s3
Und du meinst, jeder unterschiedliche Chip hat die gleiche Referenzspannung für den ADC? Träum weiter.
Ich habe das doch verlinkt! > By design, Vref is set to 1100 mV. However, > due to manufacturing variations, the actual > value may range between 1000 mV and 1200 mV > depending on the chip. Sogar eine Kalibrieranleitung findet sich da.
Ich empfehle, zwischen - dem ESP32S3 Chip - einem ESP32S3 Modul und - einem Board mit ESP32S3 Chip - einem Board mit ESP32S3 Modul - und welchem Board konkret zu unterscheiden. Der ESP32S3 Chip kann nicht mir 5V versorgt werden. Seine normale Versorgungsspannung beträgt 3,3V. Board enthalten üblicherweise einen LDO Spannungsregler. Der ADC hat 12 Bit und misst 0 bis 1,1 Volt. Der Wert 4095 entspricht dann 1,1 Volt. Warum denkst du, dass der Wert 3152 der Spannung 3,15 Volt entspricht? Auf Boards sind eventuell Spannungsteiler vorgeschaltet, um den Messbereich zu erweitern. Das muss jedoch nicht zwingend 3,3V sein. Kommt aufs konkrete Board an. Ich habe mal einen Schaltplan aus dem Netz angehängt, dort ist KEIN Spannungsteiler eingezeichnet. Wenn dein Board ebenfalls keinen Spannungsteiler hat, dann bedeutet der Messwert 3152 nicht 3,15V sondern 0,89V. https://documentation.espressif.com/esp32-s3_datasheet_en.html#electrical_characteristics https://documentation.espressif.com/esp32-s3_technical_reference_manual_en.pdf Kapitel 39.3.5
:
Bearbeitet durch User
Nemopuk schrieb: > Wenn dein Board ebenfalls keinen Spannungsteiler hat, dann bedeutet der > Messwert 3152 nicht 3,15V sondern 0,89V. Bei einer Funktion, die Tobias L. schrieb: > Funktion analogReadMilliVolts heißt, wäre es allerdings naheliegend, dass die einen Wert skaliert in Millivolt zurück gibt - wie auch immer diese Funktion den Wert der Referenzspannung von dem Exemplar erfährt bzw. erfahren soll. Was sagt die Doku der Funktion zu dem Thema?
:
Bearbeitet durch User
Tobias L. schrieb: > Ich möchte an mehreren pins > ... > > Das heisst also dass ich bei jedem esp32s3 eine unterschiedliche > Abweichung habe. > > ... Das ist so. Habe mit ChatgPT ein Projekt entwickelt, bei dem Ströme über ADCs (vorherige Unwandlung in Spannungen) gemessen werden. Das Programm habe ich kalibriert. Nach Flashen eines weiteren ESP32 Boards stimmten die kalibrierten Werte überhaupt nicht mehr. Für ChatGPT war das logisch ... hat irgendeine Espressif Doku ausgegraben, in der auf den Umstand hingewiesen wird, dass ADCs bei jedem ESP32 hardwarespezifisch kalibriert werden müssen.
Tobias L. schrieb: > Der schaltplan drum rum sollte doch eigentlich egal sein... Dir ist klar, dass der G266 kein Analogsignal am Ausgang liefert, sondern ein binäres, dass immer zwischen H und L hin- und her springt? Der Ölstand/-temperatur ist im Tastverhältnis kodiert. Soviel zum Thema "Schaltplan ist egal" ...
:
Bearbeitet durch User
Tobias L. schrieb: > hat jemand eine Idee wie ich diesen dynamischen OFfset justieren kann Warum meinst du, dass das ein Offset ist und kein Skalierungsfaktor? Dann müsste der Unterschied auch bei 0V Eingangsspannung bestehen. Darüber sagst du nichts. Wie berücksichtigt deine Funktion analogReadMilliVolts() Unterschiede in der Referenzspannung des ADC?
Ich weiss nicht, ob es bei ESP32 auch so krass ist: der ADC des ESP8266 durfte Laut einer älteren Version des Datenblattes unter Berücksichtigung aller Schwächen bis zu 20% vom richtigen Wert abweichen. Gemessen habe ich 10%. Im Internet gibt es irgendo ein ausführliches Messprotokoll, wo jemand auf etwa 15% kam, soweit ich mich erinnere.
Martin P. schrieb: > Beim esp8266 musste man wenn ich mich richtig erinnere beim ADC auch > noch weitere Dinge beachten z.B. den Messbereich nur 0 - 1V
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.

