From 088fa5da212f225dfcd570c452d00faa5282bfe1 Mon Sep 17 00:00:00 2001 From: Max Hunt Date: Sat, 4 Jan 2020 00:54:27 +0000 Subject: [PATCH] Update --- UPGRADE/Code/v2/v2.ino | 90 +++++------------------------------------- 1 file changed, 9 insertions(+), 81 deletions(-) diff --git a/UPGRADE/Code/v2/v2.ino b/UPGRADE/Code/v2/v2.ino index eb863a4..ed0cb21 100644 --- a/UPGRADE/Code/v2/v2.ino +++ b/UPGRADE/Code/v2/v2.ino @@ -26,14 +26,6 @@ Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); -int batteryPct = 0; -double battVoltage = 0.0; - -static const double chargeModifier = -0.04; -static const double dischargeModifier = 0.04; - -double voltageModifier = 0; - bool powerState = false; bool screenOn = false; bool charging_1 = false; @@ -138,14 +130,11 @@ void setup() { pinMode(PWRBTN, INPUT_PULLUP); pinMode(CHGBTN, INPUT_PULLUP); digitalWrite(FETCTRL, LOW); - battVoltage = GetVoltage(); resetScreen(); delay(200); - /* FuelGauge.begin(); FuelGauge.reset(); //<== Might cause problems FuelGauge.quickstart(); - */ } void loop() { @@ -166,41 +155,6 @@ void loop() { } } -void getBatteryCharge(){ - double voltage = GetVoltage(); - - if (voltage > 4.15){batteryPct = 100;} - else if (voltage > 4.11){batteryPct = 95;} - else if (voltage > 4.08){batteryPct = 90;} - else if (voltage > 4.02){batteryPct = 85;} - else if (voltage > 3.98){batteryPct = 80;} - else if (voltage > 3.95){batteryPct = 75;} - else if (voltage > 3.91){batteryPct = 70;} - else if (voltage > 3.87){batteryPct = 65;} - else if (voltage > 3.85){batteryPct = 60;} - else if (voltage > 3.83){batteryPct = 55;} - else if (voltage > 3.82){batteryPct = 50;} - else if (voltage > 3.80){batteryPct = 45;} - else if (voltage > 3.79){batteryPct = 40;} - else if (voltage > 3.77){batteryPct = 35;} - else if (voltage > 3.75){batteryPct = 30;} - else if (voltage > 3.73){batteryPct = 25;} - else if (voltage > 3.71){batteryPct = 20;} - else if (voltage > 3.69){batteryPct = 15;} - else if (voltage > 3.61){batteryPct = 10;} - else if (voltage > 3.40){ - - batteryPct = 0; - } - else if (voltage < 2){batteryPct = -1;} - -} - -void _getBatteryCharge(){ - batteryPct = FuelGauge.percent(); -} - - void checkPresses(){ if (digitalRead(PWRBTN) == 0) { if (powerState == true || screenState != 0) { @@ -257,7 +211,6 @@ void checkCharging(){ } } - void turnOn() { if(isSafe == true){ blinkLed(PWRLED); @@ -275,30 +228,24 @@ void turnOff() { powerState = false; } - void resetScreen() { display.clearDisplay(); display.display(); screenOn = false; } -void updateScreen() { - getBatteryCharge(); - updateDisplay(); -} - -void updateDisplay(){ +void updateScreen(){ display.clearDisplay(); display.drawBitmap(0, 0, battery_logo, 120, 32, 1); display.setTextSize(2); display.setCursor(30, 10); display.setTextColor(0); if (screenState == 1){ - display.print(batteryPct); + display.print(getPct()); display.println("%"); } else if (screenState == 2){ - display.print(GetVoltage()); + display.print(getVoltage()); display.println(" V"); } updateDispayHelper(); @@ -314,42 +261,23 @@ void updateDisplayChg(){ } void updateDispayHelper(){ + int batteryPct = getPct(); if (charging_1 == true && batteryPct != 100) {display.drawBitmap(118, 0, charge_logo, 16, 14, 1); screenOn = true;} else if (charging_2 == true && batteryPct != 100) {display.drawBitmap(118, 16, charge_logo, 16, 14, 1); screenOn = true;} else if (charging_1 == true && batteryPct == 100) {display.drawBitmap(118, 0, charged_logo, 16, 14, 1); screenOn = true;} else if (charging_2 == true && batteryPct == 100) {display.drawBitmap(118, 16, charged_logo, 16, 14, 1); screenOn = true;} } -double GetVoltage(){ - int totalSamples = 0; - double voltage = 0; - for (int q = 0; q < 10; q++) { - totalSamples = totalSamples + analogRead(VBAT); - delay(5); - } - voltage = (totalSamples / 10) * (5.00 / 1023.0); - - if(charging_1 == true || charging_2 == true){voltageModifier = chargeModifier;} - else if(powerState == true){voltageModifier = dischargeModifier;} - else {voltageModifier = 0;} - - voltage = voltage + voltageModifier; - - if (voltage > (battVoltage-0.03) && voltage < (battVoltage+0.03)) { - return battVoltage; - } - else { - battVoltage = voltage; - return voltage; - } +double getVoltage(){ + return (FuelGauge.voltage()/1000); } -double _GetVoltage(){ - return (FuelGauge.voltage()); +int getPct(){ + return (FuelGauge.percent()); } void safetyCheck(){ - double currentVoltage = GetVoltage(); + double currentVoltage = getVoltage(); if(currentVoltage > 3.40 ){ //|| currentVoltage < 1.00 isSafe = true; }