void simulateUpDownSensorValues() { if (demo1Increasing == false) { globalCurrent -= 5.0; globalPower = 25.6 * globalCurrent; // Überprüfe, ob die maximalen Werte erreicht sind if (globalCurrent < -100.0) { demo1Increasing = true; globalCurrent = 0; } } else if (demo1Increasing == true) { globalCurrent += 5.0; globalPower = 25.6 * globalCurrent; } // Überprüfe, ob die maximalen Werte erreicht sind if (globalCurrent > 100.0) { // Setze Werte auf 0 zurück globalCurrent = 0.0; globalPower = 0.0; globalBusVoltage = 0.0; globalEnergy = 0.0; demoMode1 = false; demo1Increasing = false; } } void simulateChrgFull() { static unsigned long startTime = 0; // Startzeit initialisieren, wenn es der erste Durchlauf ist if (startTime == 0) { startTime = millis(); } globalCurrent = 200.0; globalPower = 25.6 * globalCurrent; // Zeitdauer seit dem Start berechnen unsigned long currentTime = millis(); unsigned long elapsedTime = currentTime - startTime; // Überprüfe, ob die Zeit von 60 Sekunden abgelaufen ist if (elapsedTime >= 60000) { // Setze Werte auf 0 zurück globalCurrent = 0.0; globalPower = 0.0; globalBusVoltage = 0.0; globalEnergy = 0.0; // Setze Flags zurück demoMode2 = false; startTime = 0; // Zurücksetzen der Startzeit für den nächsten Durchlauf } } void simulateDischrgEmpty() { static unsigned long startTime = 0; // Startzeit initialisieren, wenn es der erste Durchlauf ist if (startTime == 0) { startTime = millis(); } globalCurrent = -200.0; globalPower = 25.6 * globalCurrent; // Zeitdauer seit dem Start berechnen unsigned long currentTime = millis(); unsigned long elapsedTime = currentTime - startTime; // Überprüfe, ob die Zeit von 60 Sekunden abgelaufen ist if (elapsedTime >= 60000) { // Setze Werte auf 0 zurück globalCurrent = 0.0; globalPower = 0.0; globalBusVoltage = 0.0; globalEnergy = 0.0; // Setze Flags zurück demoMode3 = false; startTime = 0; // Zurücksetzen der Startzeit für den nächsten Durchlauf } }