1
0
mirror of https://github.com/thooge/esp32-nmea2000-obp60.git synced 2025-12-15 23:13:07 +01:00

Fix undervoltage detection

This commit is contained in:
norbert-walter
2025-01-30 21:59:34 +01:00
parent 175f525bcd
commit 9909bfdb4c
2 changed files with 10 additions and 8 deletions

View File

@@ -493,22 +493,26 @@ void sensorTask(void *param){
float deltaV = sensors.batteryVoltage - sensors.batteryVoltage10;
// Higher limits for lower voltages
if(sensors.batteryVoltage10 < 4.0){
if(deltaV > 0.045 && deltaV < 4.15){
if(deltaV > 0.045){
sensors.BatteryChargeStatus = 1; // Charging active
}
if(deltaV < -0.04 || deltaV >= 4.15){ // Charging stops by grater than 4,15V
if(deltaV < -0.04){
sensors.BatteryChargeStatus = 0; // Discharging
}
}
// Lower limits for higher voltages
else{
if(deltaV > 0.03 && deltaV < 4.15){
if(deltaV > 0.03){
sensors.BatteryChargeStatus = 1; // Charging active
}
if(deltaV < -0.03 || deltaV >= 4.15){ // Charging stops by grater than 4,15V
if(deltaV < -0.03){
sensors.BatteryChargeStatus = 0; // Discharging
}
}
// Charging stops by grater than 4,15V
if(sensors.batteryVoltage10 > 4.15){
sensors.BatteryChargeStatus = 0; // Discharging
}
// Send to NMEA200 bus as instance 10
if(!isnan(sensors.batteryVoltage)){
SetN2kDCBatStatus(N2kMsg, 10, sensors.batteryVoltage, N2kDoubleNA, N2kDoubleNA, 0);