Forum: Mikrocontroller und Digitale Elektronik ESP32 analoger Eingang springt bei konstanter Spannung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Heribert S. (hschorn)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich habe ein merkwürdiges Verhalten des analogen Inputs am ESP32 (hier 
Heltec Lora ESP32 v2).
Der Controller wird über einen Lipo Akku mit einen Linearregler (3.3V) 
versorgt. Die Lipo Akkus werden über eine 12V Solarzelle und einen MPPT 
Laderegeler aufgeladen 
(https://www.amazon.de/dp/B08CB1RSTR/ref=cm_sw_em_r_mt_dp_9HVSYM9597SCGKNDJTGS)
Um den Ladezustand des Akkus zu überwachen habe ich den Akku über einen 
2x220k Spannungsteiler an einen analogen Input angeschlossen und lese 
diesen über analogRead ein. Obwohl die Akkuspannung gemäß Multimeter 
immer näherungsweise konstant ist kommt es zweimal täglich zu Sprüngen 
um ca 200 bit = 5% in dem eingelesene Wert. Dies jeweils ca um 11:00 Uhr 
und ca 20:30 Uhr?
Hat jemand dazu eine Erklärung?

: Bearbeitet durch User
von Dieter H. (kyblord)


Lesenswert?

Wie wärs mit Schaltung? Eventuell ein Kondensator um zu puffern?

von A. S. (achs)


Lesenswert?

Naja, irgendwas wird da passieren. Was Du da machst und was einfluss 
hast, weißt nur Du.

Die erste Frage: Hat sich ein Wert verändert? (Messwert, Vcc, Spannung 
am ESP, Referenzspannung, ...)

Die zweite Frage: was macht ein zweiter, paralleler Eingang, an dem eine 
Batterie hängt?

die dritte: Gibt es an dem Port, an dem Controller noch andere Eingänge 
die gelesen werden und die jetzt einen anderen Wert haben (z.B. 
Laden/nicht Laden oder eine andere Spannung)

von Werner (Gast)


Lesenswert?

Heribert S. schrieb:
> Um den Ladezustand des Akkus zu überwachen habe ich den Akku über einen
> 2x220k Spannungsteiler an einen analogen Input angeschlossen und lese
> diesen über analogRead ein. Obwohl die Akkuspannung gemäß Multimeter
> immer näherungsweise konstant ist kommt es zweimal täglich zu Sprüngen
> um ca 200 bit = 5% in dem eingelesene Wert. Dies jeweils ca um 11:00 Uhr
> und ca 20:30 Uhr?
> Hat jemand dazu eine Erklärung?

- Aufbau auf einem Steckbrett mit den üblichen schlechten Dupont Kabeln?
- Spannungsteiler direkt am Akku und nicht vor dem ADC Eingang? Damit 
Spannungsabfall auf der GND Leitung bei höherem Stromfluss.
- GND Verbindungen (Akku, Solarzelle, Laderegler, ESP32) nicht in 
Sternform?

> Dies jeweils ca um 11:00 Uhr und ca 20:30 Uhr?

Da wird der eingebaute Trojaner eine Verbindung mit seinem 
Kommandoserver aufbauen ;)

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Heribert S. schrieb:
> Um den Ladezustand des Akkus zu überwachen habe ich den Akku über einen
> 2x220k Spannungsteiler an einen analogen Input angeschlossen und lese
> diesen über analogRead ein.
Ja, das dürfte wohl schon mal von vorn herein zu hochohmig sein...

> Obwohl die Akkuspannung gemäß Multimeter immer näherungsweise konstant ist
Miss mal die Spannung am ADC-Eingang. So wie es der ADC auch tut.

> Hat jemand dazu eine Erklärung?
Möglichkeit 1: es fließt ein höherer Strom in den ADC-Eingang hinein und 
deshalb fällt mehr Spannung am Widerstand ab und deshalb kommt am 
ADC-Eingang weniger an.
Möglichkeit 2: die Referenzspannung des ADC steigt um 5% an.

> Dies jeweils ca um 11:00 Uhr und ca 20:30 Uhr?
Was macht dein Programm um diese Zeit? Wird irgendwas 
ein-/aus-/umgeschaltet?

> Die Lipo Akkus werden über eine 12V Solarzelle und einen MPPT
> Laderegeler aufgeladen
Und weil diese Solarzelle nach Westen ausgerichtet ist, wird der Akku 
nur zwischen 11 und 20 Uhr geladen?

> den Akku über einen 2x220k Spannungsteiler an einen analogen Input
> angeschlossen und lese diesen über analogRead ein.
Liest du auch noch was anderes an einem anderen Pin per analogRead() 
ein? Falls ja: ändert sich dieser Wert um 11 und um 20 Uhr?

: Bearbeitet durch Moderator
von Heribert S. (hschorn)


Lesenswert?

Danke für die Hinweise:
A. S. schrieb:
> Naja, irgendwas wird da passieren. Was Du da machst und was einfluss
> hast, weißt nur Du.
>
Ich vermute derzeit den Akkulader (MPPT Tracker), den habe ich jetzt mal 
abgeklemmt und lasse das ganze über Akku mal für 24h laufen


> Die erste Frage: Hat sich ein Wert verändert? (Messwert, Vcc, Spannung
> am ESP, Referenzspannung, ...)
>
Referenzspannnung ist konstant, am Akku selber messe ich mit dem 
Multimeter keinen Unterschied

> Die zweite Frage: was macht ein zweiter, paralleler Eingang, an dem eine
> Batterie hängt?
>
Das werde ich mal testen

> die dritte: Gibt es an dem Port, an dem Controller noch andere Eingänge
> die gelesen werden und die jetzt einen anderen Wert haben (z.B.
> Laden/nicht Laden oder eine andere Spannung)
Ja, mehrere, aber die haben keine Auffälligkieten, bzw messen was sie 
sollen

von Heribert S. (hschorn)


Lesenswert?

Werner schrieb:

Danke für die Hinweise

> Heribert S. schrieb:
>> Um den Ladezustand des Akkus zu überwachen habe ich den Akku über einen
>> 2x220k Spannungsteiler an einen analogen Input angeschlossen und lese
>> diesen über analogRead ein. Obwohl die Akkuspannung gemäß Multimeter
>> immer näherungsweise konstant ist kommt es zweimal täglich zu Sprüngen
>> um ca 200 bit = 5% in dem eingelesene Wert. Dies jeweils ca um 11:00 Uhr
>> und ca 20:30 Uhr?
>> Hat jemand dazu eine Erklärung?
>
> - Aufbau auf einem Steckbrett mit den üblichen schlechten Dupont Kabeln?

Nein - ist auf Lochrasterplatine gelötet

> - Spannungsteiler direkt am Akku und nicht vor dem ADC Eingang? Damit
> Spannungsabfall auf der GND Leitung bei höherem Stromfluss.
Spannungsteiler sitzt etwas auf der Mitte zwischen Akku und ADC Eingang

> - GND Verbindungen (Akku, Solarzelle, Laderegler, ESP32) nicht in
> Sternform?
Nein GND von der Solarzelle ist nur auf dem MPPT Laderegler, Akku und 
ESP sind an einem Punkt verbunden

>
>> Dies jeweils ca um 11:00 Uhr und ca 20:30 Uhr?
>
> Da wird der eingebaute Trojaner eine Verbindung mit seinem
> Kommandoserver aufbauen ;)

von Heribert S. (hschorn)


Lesenswert?

Lothar M. schrieb:

Danke für die Hinweise

> Heribert S. schrieb:
>> Um den Ladezustand des Akkus zu überwachen habe ich den Akku über einen
>> 2x220k Spannungsteiler an einen analogen Input angeschlossen und lese
>> diesen über analogRead ein.
> Ja, das dürfte wohl schon mal von vorn herein zu hochohmig sein...
>

Was schlägst Du vor?


>> Obwohl die Akkuspannung gemäß Multimeter immer näherungsweise konstant ist
> Miss mal die Spannung am ADC-Eingang. So wie es der ADC auch tut.
>
>> Hat jemand dazu eine Erklärung?
> Möglichkeit 1: es fließt ein höherer Strom in den ADC-Eingang hinein und
> deshalb fällt mehr Spannung am Widerstand ab und deshalb kommt am
> ADC-Eingang weniger an.
> Möglichkeit 2: die Referenzspannung des ADC steigt um 5% an.
>
Die Referenzspannung ist konstat über einen Längsregler und wird auch 
gemessen über einen ADC.



>> Dies jeweils ca um 11:00 Uhr und ca 20:30 Uhr?
> Was macht dein Programm um diese Zeit? Wird irgendwas
> ein-/aus-/umgeschaltet?
>
Es werden alle 5' Messungen - dh Eingänge ausgelesen und über LORA 
übertragen


>> Die Lipo Akkus werden über eine 12V Solarzelle und einen MPPT
>> Laderegeler aufgeladen
> Und weil diese Solarzelle nach Westen ausgerichtet ist, wird der Akku
> nur zwischen 11 und 20 Uhr geladen?
>
Die Zelle ist nach Süden ausgerichtet, bekommt abererst gegen 10:30 Uhr 
Sonne

>> den Akku über einen 2x220k Spannungsteiler an einen analogen Input
>> angeschlossen und lese diesen über analogRead ein.
> Liest du auch noch was anderes an einem anderen Pin per analogRead()
> ein? Falls ja: ändert sich dieser Wert um 11 und um 20 Uhr?

Ja, mehrere, aber die haben keine Auffälligkeiten, bzw messen was sie
sollen

von Joachim B. (jar)


Lesenswert?

Lothar M. schrieb:
> Miss mal die Spannung am ADC-Eingang. So wie es der ADC auch tut.

Heribert S. schrieb:
> am Akku selber messe ich mit dem
> Multimeter keinen Unterschied

hey dein Multimeter macht wieviel Messungen/s 2, 3, 10?
Dein ADC sampelt wie schnell?

manno Grundlagen wenn der Wert am ADC zappelt kann man das meisst nur am 
Oszi sehen aber nie am DMM

220k Spannungsteiler ist i.d.R. auch viel zu hochohmig!
meist sind 10k passender.

: Bearbeitet durch User
von Heribert S. (hschorn)


Lesenswert?

Joachim B. schrieb:
> Lothar M. schrieb:
>> Miss mal die Spannung am ADC-Eingang. So wie es der ADC auch tut.
>
> Heribert S. schrieb:
>> am Akku selber messe ich mit dem
>> Multimeter keinen Unterschied
>
> hey dein Multimeter macht wieviel Messungen/s 2, 3, 10?
> Dein ADC sampelt wie schnell?
>
> manno Grundlagen wenn der Wert am ADC zappelt kann man das meisst nur am
> Oszi sehen aber nie am DMM

Sorry für meine schlampige Antwort - habe ich auch mit dem Oszi 
kontrolliert. Perfekte Gleichspannung ohne Auffälligkeiten

Werde mal die Widerstände wechseln

: Bearbeitet durch User
von Heribert S. (hschorn)


Lesenswert?

Habe eine Lösung gefunden: Offensichtlich beinflussen die Analgen 
Eingänge ich gegenseitige wenn diese unmitelbar hintereinander 
eingelesen werden. Ich hab eein delay(100) zwichen die Befehle analoRead 
eingefügt und schon liegen die Werte im erwarteten Rahmen.

von Joachim B. (jar)


Lesenswert?

Heribert S. schrieb:
> wenn diese unmitelbar hintereinander
> eingelesen werden.

das war auch beim AVR schon so, aber gut das du es gefunden hast und 
danke für die Rückmeldung!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.