first commit
This commit is contained in:
47
DeautherX/BatteryManagement.cpp
Normal file
47
DeautherX/BatteryManagement.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
#include "BatteryManagement.h"
|
||||
|
||||
float BatteryManagement::mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
|
||||
{
|
||||
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
|
||||
}
|
||||
int BatteryManagement::getBatteryPercentage5V(){
|
||||
sensorValue = analogRead(analogInPin);
|
||||
float voltage = (((sensorValue * 3.3) / 1024) * 2 + calibration); //multiply by two as voltage divider network is 100K & 100K Resistor
|
||||
|
||||
if (millis() - lastMillisBatt >= 1 * 1000){
|
||||
bat_percentage = mapfloat(voltage, 2.8, 4.2, 0, 100);
|
||||
pureVolt = bat_percentage;
|
||||
lastMillisBatt = millis();
|
||||
}
|
||||
|
||||
if (bat_percentage>= 100)
|
||||
{
|
||||
bat_percentage = 100;
|
||||
}
|
||||
if (bat_percentage<= 0)
|
||||
{
|
||||
bat_percentage = 1;
|
||||
}
|
||||
|
||||
return (int)bat_percentage;
|
||||
}
|
||||
|
||||
int BatteryManagement::getBatteryPercentage(int max){
|
||||
float tmpPwr = getBatteryPercentage5V();
|
||||
|
||||
// Scale the percentage relative to the maximum value of 67
|
||||
tmpPwr = (tmpPwr / max) * 100;
|
||||
|
||||
// Ensure tmpPwr is within the valid range
|
||||
if (tmpPwr > 100){
|
||||
tmpPwr = 100;
|
||||
} else if (tmpPwr < 0){
|
||||
tmpPwr = 0;
|
||||
}
|
||||
|
||||
return (int)tmpPwr;
|
||||
}
|
||||
|
||||
bool BatteryManagement::isChargingMode(){
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user