Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*************************************************************************************
- /* Battery Monitoring *
- /************************************************************************************/
- void checkBattery() {
- float previousBatteryVoltage = batteryVoltage;
- float vRefScale = (3.3f / 4096.0f) * ((batteryR1 + batteryR2) / batteryR2);
- adc1_get_raw(ADC1_CHANNEL_6); //read and discard
- batteryPinValue = float( adc1_get_raw(ADC1_CHANNEL_6) ); //take a raw ADC reading
- batteryVoltage = batteryPinValue * vRefScale;
- realBatteryPercent = map(batteryVoltage,3.3f,4.2f,0,100);
- Serial.println("\Battery pinValue: " + String(batteryPinValue) + " vRefScale: " + String(vRefScale,7)+ " Voltage: " + String(batteryVoltage));
- if (previousBatteryVoltage != 0) { // if the volate isnt at least 0.05 volts diference dont change the value to compenste for slight variations
- if (abs(previousBatteryVoltage - batteryVoltage) < 0.05f) {
- batteryVoltage = previousBatteryVoltage;
- }
- }
- realBatteryPercent = map(batteryVoltage*100,360,420,0,100);
- Serial.println("Adjusted Voltage: " + String(batteryVoltage) + " Percent: " + String(batteryPercent));
- if (batteryVoltage <= 3.6) {
- batteryPercent = 0;
- } else if (batteryVoltage <= 3.65) {
- batteryPercent = 10;
- } else if (batteryVoltage <= 3.7) {
- batteryPercent = 20;
- } else if (batteryVoltage <= 3.75) {
- batteryPercent = 30;
- } else if (batteryVoltage <= 3.8) {
- batteryPercent = 40;
- } else if (batteryVoltage <= 3.85) {
- batteryPercent = 50;
- } else if (batteryVoltage <= 3.9) {
- batteryPercent = 60;
- } else if (batteryVoltage <= 3.95) {
- batteryPercent = 70;
- } else if (batteryVoltage <= 4) {
- batteryPercent = 80;
- } else if (batteryVoltage <= 4.1) {
- batteryPercent = 90;
- } else {
- batteryPercent = 100;
- }
- }
- void checkSolar() {
- float vRefScale = (3.3f / 4096.0f) * ((solarR1 + solarR2) / solarR2);
- adc1_get_raw(ADC1_CHANNEL_7); //read and discard
- float pinValue = float( adc1_get_raw(ADC1_CHANNEL_7) ); //take a raw ADC reading
- solarVoltage = pinValue * vRefScale;
- Serial.println("Solar pinValue: " + String(pinValue) + " vRefScale: " + String(vRefScale,7) + " Voltage: " + String(solarVoltage));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement