- battery calc now more efficent

- new battery values now every 0.5s
This commit is contained in:
2023-09-04 15:52:34 +02:00
parent befbd898cc
commit 1d56a2a36d
4 changed files with 20 additions and 8 deletions
+15 -6
View File
@@ -17,22 +17,31 @@ Do later:
-> Menu Display from parent as run() to make Menu as Component -> Menu Display from parent as run() to make Menu as Component
-> Racing Mode -> Racing Mode
-> ConsolControl -> ConsolControl
-> Menü für Sensordaten (kann in jedem Betriebsmodus aufgerufen werden)
- GNSS
- Ntrip
- CalcCompass
- RealCompass
- Gyroskop
- Geschwindigkeiten (vielleicht)
-> Menü für Einstellungen
- PID
- Geschwindigkeiten
-> Battery
- tabelle mit eigenen Werten übergeben und nicht in header (wiederverwendbarkeit)
- kalibrierungsmethode mit Menü
- Daten in flash speichern können
Do now: Do now:
Code: Code:
Doxygen Kommentare aktualisieren Doxygen Kommentare aktualisieren
Geschwindigkeiten außerhalb von Modi einstellen, Manager kann die Werte einstellen da Interface
Automat in MoveControl weil jetzt in Arbeit beschrieben Automat in MoveControl weil jetzt in Arbeit beschrieben
Liste mit Betriebsmodi, automatisch in Menü einfügen Liste mit Betriebsmodi, automatisch in Menü einfügen
Betriebmodi dem Drivemanger ohne switchCase geben, aus Liste oder so
bettery managment checken, buffer in battery und in Main
battery tabelle mit eigenen Werten übergeben und nicht in header (wiederverwendbarkeit)
battery methode für daten erzeugen und in eeporm speichern
battery bruch mit R werten nur einmal berechnen battery bruch mit R werten nur einmal berechnen
lange kein daten von fernbedienung dann? lange kein daten von fernbedienung dann?
Input pointer von fernbedienung nicht veränderbar doppel const Input pointer von fernbedienung nicht veränderbar doppel const
trennen funktion und ui route menü trennen funktion und ui route menü
DriveManager Mode als Template übergeben
Latex: Latex:
Genaue Beschreibung von PulseCounter HardwareUnit wenn möglich Genaue Beschreibung von PulseCounter HardwareUnit wenn möglich
+2 -1
View File
@@ -15,6 +15,7 @@ Battery::Battery(uint8_t pin, uint32_t r1, uint32_t r2) {
this->pin = pin; this->pin = pin;
this->r1 = r1; this->r1 = r1;
this->r2 = r2; this->r2 = r2;
this->batteryVoltageFactor = (double) (this->r1 + this->r2)) / (double) this->r2
this->initBuffer(); this->initBuffer();
this->loopDelay = 100; this->loopDelay = 100;
} }
@@ -71,7 +72,7 @@ double Battery::calculateInputVoltage() {
void Battery::calculateBatteryVoltage() { void Battery::calculateBatteryVoltage() {
if (this->r1 && this->r2) { if (this->r1 && this->r2) {
this->batteryVoltage = (this->calculateInputVoltage() * (double) (this->r1 + this->r2)) / (double) this->r2; this->batteryVoltage = (this->calculateInputVoltage() * this->batteryVoltageFactor;
return; return;
} }
+2 -1
View File
@@ -88,13 +88,14 @@ class Battery : public Component {
uint8_t batteryPercent = 0; uint8_t batteryPercent = 0;
uint8_t batteryLowPercent = 10; uint8_t batteryLowPercent = 10;
uint8_t bufferPos = 0; uint8_t bufferPos = 0;
uint8_t calulationDelayMultiplier = 10; uint8_t calulationDelayMultiplier = 5;
uint8_t loopCounter = 0; uint8_t loopCounter = 0;
uint16_t adcBuffer[bufferSize]; uint16_t adcBuffer[bufferSize];
uint32_t r1 = 0; uint32_t r1 = 0;
uint32_t r2 = 0; uint32_t r2 = 0;
bool calculatetNewValues = false; bool calculatetNewValues = false;
double batteryVoltage = 0; double batteryVoltage = 0;
double batteryVoltageFactor;
const float capacityVoltages[21] = {9.82, 10.83, 11.06, 11.12, // 0 5 10 15 const float capacityVoltages[21] = {9.82, 10.83, 11.06, 11.12, // 0 5 10 15
11.18, 11.24, 11.3, 11.36, // 20 25 30 35 11.18, 11.24, 11.3, 11.36, // 20 25 30 35
+1
View File
@@ -154,6 +154,7 @@ void loop() {
lcdWrapper->loop(); lcdWrapper->loop();
mainBattery->loop(); mainBattery->loop();
// new Value ervery 0.5s
if (mainBattery->isNewValue()) { if (mainBattery->isNewValue()) {
static uint8_t batteryLowCounter = 0; static uint8_t batteryLowCounter = 0;
if (mainBattery->isBatteryLow(10)) if (mainBattery->isBatteryLow(10))