Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Softwaredoku
Hochschule Karlsruhe Logo Energieeffiziente Mikrocontroller
Energiegewinnung Induktiv
Wintersemester 2020
Constantin Schempp
Tobias Bergmann

Software Dokumentation

Download Quellcode: Lolin32_mit_BAT_OLED.ino

Die Software auf dem ESP32 ist in erster Linie dafür zuständig, das System bei Inaktivität in den DeepSleep zu versetzen und bei Betätigung der Mechanik wieder aufzuwecken. Für diese Funktionalität wird Pin 13 des Lolin32 lite als Wakeup-Interrupt verwendet. An diesem Pin liegen 3,3V (also "High") an, sobald der Generator eine Spannung liefert.

Im wachen Zustand wird die Spannung an Pin 27 (Spannungsteiler) analog ausgelesen. Anhand dieses Wertes kann der Batterieladestand mit den folgenden Berechnungen ermittelt werden:

- der analoge Eingang hat Werte zwischen 0 und 4095 (entspricht 0V bis 3,3V)
- es ergibt sich: 3300/4096 = 0,8056 mV pro Schritt des ADC
- weil der Spannungsteiler die Batteriespannung halbiert, muss dieser Wert noch mit Faktor 2 multiplziert werden: 0,8056*2 = 1,6113 mV pro ADC-Schritt
- Hieraus ergibt sich: Batteriespannung = 1,6113 * ADC-Wert
- der so ermittelte Spannungswert kann direkt in den prozentualen Ladezustand umgerechnet werden, weil dieser proportional zur Batteriespannung ist (4,2V Ladeabschaltspannung = Akku voll / 3,0V Abschaltspannung Entladung = Akku leer).

Der berechnete Batterieladestand wird anschließend zusammen mit dem BootCount auf dem angeschlossenen OLED-Display für 1,5 Sekunden angezeigt. Während der ESP32 wach ist leuchtet außerdem die vorhandene Onboard-LED zur Symbolisierung dieses Zustandes. Nach Ablauf der eingestellten Zeit werden das Display und die Onboard-LED ausgeschaltet und der ESP32 versetzt sich wieder in den DeepSleep, bis die Vorrichtung das nächste Mal betätigt wird.

  Mit Unterstützung von Prof. J. Walter Wintersemester 2020