Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem ds3231 eeprom_Nikita mbed testUniGraphic_150217
Fork of merged_code2_20sept_2017_4th_oct_2017 by
battery.cpp
00001 #include "mbed.h" 00002 #include "battery.h" 00003 #include "display_modules.h" 00004 00005 #define BATTERY_PIN PTB1 // Battery Pin 00006 #define BATTERY_MAX_OPERATING_VOLTAGE (float)3.3 // Battery Max Operating Voltage 00007 #define BATTERY_INTERMEDIATE_HIGH_VOLTAGE (float)3.64 // Battery Full Voltage 00008 #define BATTERY_MEDIUM_VOLTAGE (float)3.57 // battery Medium Voltage 00009 #define BATTERY_LOW_VOLTAGE (float)3.53 // Battery LOW Voltage 00010 00011 #define BATTERY_SCREEN_CHARGE_CONDITION 0 00012 #define BATTERY_LOW_CHARGE_CONDITION 1 00013 #define BATTERY_CRITICALLY_LOW_CHARGE_CONDITION 2 00014 #define BATTERY_SCREEN_NO_CHARGE_CONDITION 3 00015 00016 static uint8_t battery_voltage_condition = 0; 00017 00018 00019 AnalogIn A(BATTERY_PIN); 00020 Serial battery(USBTX, USBRX); 00021 00022 /* Function : To Monitor Battery Voltage 00023 returns : void 00024 00025 */ 00026 00027 //uint8_t battery_condition=0; 00028 void battery_monitor() 00029 { 00030 00031 float b_voltage; 00032 b_voltage = A.read_u16()*(BATTERY_MAX_OPERATING_VOLTAGE/65535)*2; 00033 wait(0.001f); 00034 battery.printf("voltage=%f",b_voltage); 00035 00036 if (b_voltage >= BATTERY_INTERMEDIATE_HIGH_VOLTAGE ) 00037 battery_voltage_condition = BATTERY_SCREEN_CHARGE_CONDITION; 00038 00039 else if ((b_voltage < BATTERY_INTERMEDIATE_HIGH_VOLTAGE ) && (b_voltage > BATTERY_MEDIUM_VOLTAGE)) // 15% to 10% Battery voltage 00040 battery_voltage_condition = BATTERY_LOW_CHARGE_CONDITION ; 00041 00042 else if ((b_voltage < BATTERY_MEDIUM_VOLTAGE) && (b_voltage > BATTERY_LOW_VOLTAGE)) // 10% to 5% battery volage 00043 battery_voltage_condition = BATTERY_CRITICALLY_LOW_CHARGE_CONDITION; 00044 00045 else if (b_voltage < BATTERY_LOW_VOLTAGE) 00046 battery_voltage_condition = BATTERY_SCREEN_NO_CHARGE_CONDITION ; 00047 00048 00049 00050 00051 } 00052 00053 /* Function: To Display Battery Status 00054 returns : void 00055 */ 00056 00057 void battery_status_display() 00058 { 00059 if (battery_voltage_condition == BATTERY_SCREEN_CHARGE_CONDITION) 00060 battery_screen_charge(); 00061 00062 else if (battery_voltage_condition == BATTERY_LOW_CHARGE_CONDITION) 00063 battery_low_charge(); 00064 00065 else if (battery_voltage_condition == BATTERY_CRITICALLY_LOW_CHARGE_CONDITION) 00066 battery_critically_low_charge(); 00067 00068 else if (battery_voltage_condition == BATTERY_SCREEN_NO_CHARGE_CONDITION) { 00069 do 00070 { 00071 battery_screen_nocharge(); 00072 wait_ms(500); 00073 } while(battery_voltage_condition == BATTERY_SCREEN_NO_CHARGE_CONDITION ); 00074 00075 } 00076 } 00077 00078 /* Function : To get battery status depending battery voltage 00079 returns : battery_voltage_condition 00080 00081 */ 00082 00083 uint8_t get_battery_status() 00084 { 00085 00086 return battery_voltage_condition; 00087 }
Generated on Thu Jul 14 2022 21:53:47 by
1.7.2
