Forum: Mikrocontroller und Digitale Elektronik Esp32 misst falsche spannung


von Johannes K. (kr3x)


Lesenswert?

Hallo zusammen,

ich will mit meinem esp32 die Spannung von meinem Solarmodule messen 
dazu habe ich eine voltage divider eingebaut von 47k und 6.8k und mein 
Code ist
1
float readvolt = analogRead(34);
2
  float voltage = readvolt * ( 3.3/4095 ) * ( ( 47+6.8) / 6.8 );
3
  Serial.print(voltage, 1);
4
  Serial.println("v");
5
  delay(300);
aber im serial monitor wird wir eine Spannug von 6,4v angezeigt aber 
wenn ich mit einem Testo Multimeter nach messe bekomme ich eine Spannung 
von 7,6v.
Habe den voltage divider auch richtig eingebaut weil ich es schon öfters 
an mehren Arduino eingebaut habe

Schon mal danke für die Hilfe

von drm (Gast)


Lesenswert?

entweder rechnest du die Spannung in Millivolt oder du castest die 
Integer Werte in float bevor du damit rechnest um dir keine 
Rundungsfehler reinzuholen. Die Klammersetzung der Formeln kann auch 
schiefgehen wenn man Int und float mischt.

float voltage = readvolt * ( 3.3/4095.0 ) * ( ( 47.0+6.8) / 6.8 );

float ist nicht die Stärke vom ESP32, also:

int voltage = readvolt * ( 3300/4095 ) * ( ( 4700+6800) / 6800 );

oder so ähnlich, bin zu faul um alles durchzudenken.

Vor allem am Analog Pin des uC auch die Spannung nachmessen um sicher zu 
gehen das der uC auch wirklich das misst was du denkst.

von N. M. (mani)


Lesenswert?

Erst Mal die Basics.
Bei 7,6V müssten 0,96V am ESP ADC Pin anliegen. Liegen die an? Wenn nein 
dann hast du falsche Widerstände erwischt.

0,96V müssten nach dem ADC 1191 Digits geben. Ist das der Fall? Wenn 
nein, dann verwendest du wahrscheinlich eine andere Referenzspannung.

Wenn die obigen beiden Punkte richtig sind, ist deine Umrechnung falsch.

von Stefan F. (Gast)


Lesenswert?

Betreibst du den ESP32 denn auch mit 3,3 Volt? Oder sind es etwa 
ungeregelte 4 Volt von einem Lithium Akku?

Beitrag #7008213 wurde vom Autor gelöscht.
von Johannes K. (kr3x)


Lesenswert?

Stefan ⛄ F. schrieb:
> Betreibst du den ESP32 denn auch mit 3,3 Volt? Oder sind es etwa
> ungeregelte 4 Volt von einem Lithium Akku?
also zu Test habe ich es mit usb verbunden

von Stefan F. (Gast)


Lesenswert?

Johannes K. schrieb:
> also zu Test habe ich es mit usb verbunden

Ohne Spannungsregler? Wie hoch ist denn die Versorgungsspannung deines 
ESP32. Es sind maximal 3,6 Volt erlaubt.

von Brain 2.0 (Gast)


Lesenswert?

Schreib doch mal, was du für einen ESP32 hast. Oder ist das geheim ?

von Johannes K. (kr3x)


Lesenswert?

Stefan ⛄ F. schrieb:
> Johannes K. schrieb:
>> also zu Test habe ich es mit usb verbunden
>
> Ohne Spannungsregler? Wie hoch ist denn die Versorgungsspannung deines
> ESP32. Es sind maximal 3,6 Volt erlaubt.
Also habe den esp32 jetzt mit 3.3 volt betrieben aber da kommt die selbe 
falsche spannung raus wie bei 5volt über usb aber ich habe 
herausgefunden das der drop zu hoch ist obwohl ich den richtigen 
widerstände habe
0.9v sollte anstehen aber es sind 0.5v obwohl die ich eine 47k und 6.8k 
habe

von Johannes K. (kr3x)


Lesenswert?

Brain 2.0 schrieb:
> Schreib doch mal, was du für einen ESP32 hast. Oder ist das geheim ?

ich habe eine ESP32-D0WDQ6
tut mir leid das ich das nicht dazu geschrieben habe

von Brain 2.0 (Gast)


Lesenswert?

Johannes K. schrieb:
> Brain 2.0 schrieb:
>> Schreib doch mal, was du für einen ESP32 hast. Oder ist das geheim ?
>
> ich habe eine ESP32-D0WDQ6
> tut mir leid das ich das nicht dazu geschrieben habe

Dann zeig doch mal deine Schaltung, wie du das Teil aufgebaut hast.
Um den Chip gehören noch eine Menge Teile, du du hoffentlich auch 
eingesetzt hast.

Beitrag #7008287 wurde vom Autor gelöscht.
von Johannes K. (kr3x)


Lesenswert?

Brain 2.0 schrieb:
> Johannes K. schrieb:
>> Brain 2.0 schrieb:
>>> Schreib doch mal, was du für einen ESP32 hast. Oder ist das geheim ?
>>
>> ich habe eine ESP32-D0WDQ6
>> tut mir leid das ich das nicht dazu geschrieben habe
>
> Dann zeig doch mal deine Schaltung, wie du das Teil aufgebaut hast.
> Um den Chip gehören noch eine Menge Teile, du du hoffentlich auch
> eingesetzt hast.
achso ne habe einen fertigen
https://www.amazon.de/AZDelivery-NodeMCU-Development-Nachfolgermodell-ESP8266/dp/B074RGW2VQ/ref=sr_1_3?crid=3KMAXR4NO7UZQ&keywords=esp32&qid=1647699808&sprefix=esp%2Caps%2C132&sr=8-3

von STK500-Besitzer (Gast)


Lesenswert?


von Norbert (Gast)


Lesenswert?

Johannes K. schrieb:
> float voltage = readvolt * ( 3.3/4095 ) * ( ( 47+6.8) / 6.8 );

Wäre das vielleicht ne schöne Alternative?
1
float voltage = readvolt * ( 3.3/4095 ) * ( 6.8 / ( 47+6.8) );

von Johannes K. (kr3x)


Lesenswert?

Also ich habe jetzt mal nur die Spannung die am esp anfällt gemessen und 
mit meinem multimeter messe ich 0.6v und der esp zeigt 0.5v
1
float readvolt = analogRead(34);
2
float test = readvolt * (3.3 / 4095);
da zeigt er ja schon was falsches an

von HildeK (Gast)


Lesenswert?

Norbert schrieb:
> Wäre das vielleicht ne schöne Alternative?
> float voltage = readvolt * ( 3.3/4095 ) * ( 6.8 / ( 47+6.8) );

Bestimmt nicht.
Er will ja ein höhere Spannung, die durch 47k und 6k8 um den Faktor 7,9 
geteilt wurde, wieder zurückrechnen auf den korrekten Wert.

von Bernhard S. (b_spitzer)


Lesenswert?

Johannes K. schrieb:
> da zeigt er ja schon was falsches an
Tja, nur was? Wenn du jetzt noch die Werte von readvolt und deiner 
gemessenen Spannung ausgibst, dann kommen wir vielleicht weiter.
Der ADC des ESP32 ist nicht besonders gut. Außerdem muss man aufpassen, 
dass der 2. ADC nicht nutzbar ist, wenn man WLAN verwendet. Also alle 
Analogeingänge über A9 dann besser nicht benutzen.

Zum "krummen" ADC des ESP32 hatte ich hier mal was geschrieben:
Beitrag "ESP32 ADC für 0-5V"

von Norbert (Gast)


Lesenswert?

HildeK schrieb:
> Bestimmt nicht.
> Er will ja ein höhere Spannung, die durch 47k und 6k8 um den Faktor 7,9
> geteilt wurde, wieder zurückrechnen auf den korrekten Wert.

Hast du natürlich recht. Klarer Fall von premature posting.
Das mir das in meinem Alter noch passiert. ;-)

von HildeK (Gast)


Lesenswert?

Norbert schrieb:
> Das mir das in meinem Alter noch passiert. ;-)

Klar: Alter schützt vor Torheit nicht 😀.
Nein, ich konnte das einfach so nicht stehen lassen. Es löst aber sein 
Problem leider nicht ...

von hacker-tobi (Gast)


Lesenswert?

Hi,

zunächst die Frage : welche Referenz verwendest du und sind die Eingänge 
des ad Wandlers gemäß Datenblatt geschaltet (abblock-kondensatoren 
etc.)?

Welche Toleranz haben die Widerstände des Spannungsteilers? Um hier 
verlässliche Ergebnisse zu haben, sollte das 1% oder kleiner sein.

Berechne welche werte am eingang des AD Wandlers anliegen sollten. Miss 
damn mal die Spannungswerte nach und vergleiche sie mit den errechneten 
werten. Stimmen diese über ein?

von Chris K. (kathe)


Lesenswert?


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
Noch kein Account? Hier anmelden.