Batterie Spannungsmessung / Babbling Idiot

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Antworten
Benutzeravatar
kalwados
Beiträge: 77
Registriert: 07.07.2019, 13:29
Hat sich bedankt: 31 Mal
Danksagung erhalten: 8 Mal

Batterie Spannungsmessung / Babbling Idiot

Beitrag von kalwados » 11.02.2025, 22:05

Hallo in die Runde,

im Code von AskSinPP gibt es ja verschiedene Möglichkeiten, um bei Batteriebetrieb die Versorgungsspannung zu messen. Leider steige ich da nicht so ganz durch; insbesondere welche externe Beschaltung für die einzelnen Varianten erforderlich ist.

Im baue mir gerade einen Batteriekasten-Ersatz für LED-Lichterketten. Als Energiespeicher habe ich einen 18650 Li-Ion Akku + USB-Ladeschaltung, 3,3-Volt-Regler für den ProMini + CC1101 Modul. Der Pluspol der LED-Lichterkette hängt über einen Vorwiderstand direkt am Akku (4.2 Volt wenn 100% geladen); per NPN-Transistor wird der Minuspol nach Masse geschaltet. Funktioniert ganz gut; ABER: Wenn die Akku-Spannung zur Neige geht, habe ich zuverlässig einen Babbling Idiot; und zwar meistens wenn die Lichterkette von EIN nach AUS wechselt.

Ich möchte nun also die Spannung des Akkus messen; im Grunde so wie TomMajor es bei der tmStamp-Platine vorgesehen hat:
download/file.php?mode=view&id=117454
Welche Variante der Spannungmessung muss ich denn im Code verwenden?
Es gibt ja InternalVCC, ExternalVCC, IrqInternalBatt, IrqExternalBatt, SyncMeter, AsyncMeter. Ich vermute mal IrqExternalBatt wäre für meinen Fall die richtige Wahl. Aber was bedeuten die "3300" und die "57" in dieser Zeile (14 und 9 sind die Arduino-Pins?)
typedef BattSensor<SyncMeter<ExternalVCC<14,9,LOW,3300,57>>> BatterySensorType;
Und worin besteht der Unterschied zwischen SyncMeter und AsyncMeter?
Als Spannungsteiler sind zwei Widerstände 4k7 und 10k in geplant.

Bitte helft mir "aufs Pferd" :-)
Dateianhänge
Spannungsmessung.png

TomMajor
Beiträge: 1809
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 177 Mal
Danksagung erhalten: 403 Mal
Kontaktdaten:

Re: Batterie Spannungsmessung / Babbling Idiot

Beitrag von TomMajor » 12.02.2025, 00:03

Aber was bedeuten die "3300" und die "57" in dieser Zeile (14 und 9 sind die Arduino-Pins?)
typedef BattSensor<SyncMeter<ExternalVCC<14,9,LOW,3300,57>>> BatterySensorType;
das müsste die Vcc in mV sein und der Faktor des Spannungsteilers, wobei ich gerade nicht weiß wie sich die 57 berechnet.

Du könntest alternativ auch mein tmBattery.h aus dem HB-UNI-Sensor1 hernehmen, im Sketch inkludieren und dann sowas wie

Code: Alles auswählen

#include "tmBattery.h"
..
// 3) Echte Batteriespannungsmessung unter Last, siehe README und Thema "Babbling Idiot Protection"
// tmBatteryLoad Parameter: 1) sense pin A0, 2) activation pin D9, 3) Faktor RLoad = Rges/Rlow*1000, 4) 200ms Belastung vor Messung
// Bsp. Faktor RLoad: 10/30 Ohm -> 4000, 10/27 Ohm -> 3700
#define BAT_SENSOR tmBatteryLoad<A0, 9, 3700, 200>
..
typedef AskSin<LedType,BAT_SENSOR,RadioType> HalType;
..
Bei "echter" Batteriespannungsmessung unter Last, da sollte bei 18650 Li-Ion schon ein guter Strom kurzzeitig fließen, also den Spannungsteiler an die Kapazität des Akkus anpassen, um wirklich einen schwachen Akku zu erkennen.
Batteriespannungsmessung ohne Last nicht besonders sinnvoll IMHO.

siehe auch
https://github.com/TomMajor/SmartHome/t ... iespannung
das Oszi Bild.
Viele Grüße
Tom

Meine Entwicklungen: TomMajor/SmartHome / RM AddOn: HB-TM-Devices-AddOn / Platinen: PCB / UniSensor: HB-UNI-Sensor1

jp112sdl
Beiträge: 12295
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 873 Mal
Danksagung erhalten: 2198 Mal
Kontaktdaten:

Re: Batterie Spannungsmessung / Babbling Idiot

Beitrag von jp112sdl » 12.02.2025, 07:06

kalwados hat geschrieben:
11.02.2025, 22:05
Wenn die Akku-Spannung zur Neige geht, habe ich zuverlässig einen Babbling Idiot
Hast du die BOD (BrownOut Detection) deaktiviert oder auf einen Wert eingestellt?

Unabhängig von deinen durchaus sinnvollen Bestrebungen zur Batteriespannungsmessung, dürfte ein BI mit deaktivierter BOD nicht auftreten, bzw. ist bei mir nie wieder aufgetreten.

Ich hatte da vor kurzem :roll: (was schon 5 Jahre!?) mal etwas rum experimentiert und der TomMajor hat das hervorragend dokumentiert: https://github.com/TomMajor/SmartHome/t ... april-2020

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
kalwados
Beiträge: 77
Registriert: 07.07.2019, 13:29
Hat sich bedankt: 31 Mal
Danksagung erhalten: 8 Mal

Re: Batterie Spannungsmessung / Babbling Idiot

Beitrag von kalwados » 13.02.2025, 21:16

TomMajor hat geschrieben:
12.02.2025, 00:03
Du könntest alternativ auch mein tmBattery.h aus dem HB-UNI-Sensor1 hernehmen, im Sketch inkludieren
[...]
siehe auch
https://github.com/TomMajor/SmartHome/t ... iespannung
das Oszi Bild.
Vielen Dank für den Link. Ich werde mir das mal genauer ansehen.

Benutzeravatar
kalwados
Beiträge: 77
Registriert: 07.07.2019, 13:29
Hat sich bedankt: 31 Mal
Danksagung erhalten: 8 Mal

Re: Batterie Spannungsmessung / Babbling Idiot

Beitrag von kalwados » 13.02.2025, 21:21

jp112sdl hat geschrieben:
12.02.2025, 07:06
Hast du die BOD (BrownOut Detection) deaktiviert oder auf einen Wert eingestellt?
Leider habe ich das nicht gemacht. Und nachträglich mit bereits verlötetem CC1101-Modul funktioniert die Änderung via Diamex-ISP-Programmer wohl nicht mehr; jedenfalls wird der ATMega nicht erkannt :-(
Ich werde mal versuchen, VCC zum CC1101 abzutrennen; vielleicht kann ich dann ja die Fuse-Bits ändern.

HMSteve
Beiträge: 566
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 14 Mal
Danksagung erhalten: 98 Mal

Re: Batterie Spannungsmessung / Babbling Idiot

Beitrag von HMSteve » 13.02.2025, 21:31

Das sollte auch ohne Auftrennen der Versorgungsspannung gehen. Zur Sicherheit die Schaltung nicht ueber den Programmer versorgen, sondern wie im normalen Betrieb.

Viele Gruesse,
Stephan

jp112sdl
Beiträge: 12295
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 873 Mal
Danksagung erhalten: 2198 Mal
Kontaktdaten:

Re: Batterie Spannungsmessung / Babbling Idiot

Beitrag von jp112sdl » 13.02.2025, 22:00

Ja genau. Das ist ja gerade der Sinn eines ISP, dass man den Chip Im System Programmieren kann :D

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

TomMajor
Beiträge: 1809
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 177 Mal
Danksagung erhalten: 403 Mal
Kontaktdaten:

Re: Batterie Spannungsmessung / Babbling Idiot

Beitrag von TomMajor » 13.02.2025, 22:34

jp112sdl hat geschrieben:
12.02.2025, 07:06
Ich hatte da vor kurzem :roll: (was schon 5 Jahre!?) mal etwas rum experimentiert und der TomMajor hat das hervorragend dokumentiert: https://github.com/TomMajor/SmartHome/t ... april-2020
ja, kaum zu glauben dass dies 5 Jahre her ist :roll:
Viele Grüße
Tom

Meine Entwicklungen: TomMajor/SmartHome / RM AddOn: HB-TM-Devices-AddOn / Platinen: PCB / UniSensor: HB-UNI-Sensor1

TomMajor
Beiträge: 1809
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 177 Mal
Danksagung erhalten: 403 Mal
Kontaktdaten:

Re: Batterie Spannungsmessung / Babbling Idiot

Beitrag von TomMajor » 13.02.2025, 22:38

Wenn man mit einem ISP-Programmer den AVR flasht wird dabei das /Reset des AVR auf Low gehalten. Das hat zur Folge dass alle AVR I/O hochohmig sind, also auch das ChipSelect zum CC1101. Deswegen kann der die ISP nicht stören, auch mit VCC.
Viele Grüße
Tom

Meine Entwicklungen: TomMajor/SmartHome / RM AddOn: HB-TM-Devices-AddOn / Platinen: PCB / UniSensor: HB-UNI-Sensor1

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“