rashmi v / Mbed 2 deprecated SS_SensePOC2P0_12Dec2017_USERPID

Dependencies:   SDFileSystem ds3231 eeprom_Nikita mbed testUniGraphic_150217

Fork of SS_SensePOC2P0_11Dec2017_USERPID by rashmi v

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers battery.cpp Source File

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 /*
00012 #define  BATTERY_SCREEN_CHARGE_CONDITION                                            0
00013 #define  BATTERY_LOW_CHARGE_CONDITION                                               1
00014 #define  BATTERY_CRITICALLY_LOW_CHARGE_CONDITION                                    2
00015 #define  BATTERY_SCREEN_NO_CHARGE_CONDITION                                         3
00016 */
00017 
00018 static uint8_t battery_voltage_condition = BATTERY_SCREEN_CHARGE_CONDITION;
00019 
00020 
00021 AnalogIn A(BATTERY_PIN);
00022 Serial battery(USBTX, USBRX);
00023 
00024 /*  Function    : To Monitor Battery Voltage
00025     returns     : void
00026 
00027 */
00028  
00029  //uint8_t battery_condition=0;
00030 void battery_monitor() 
00031 {
00032     
00033     float b_voltage;
00034     b_voltage = A.read_u16()*(BATTERY_MAX_OPERATING_VOLTAGE/65535)*2;
00035     wait(0.001f);   
00036     battery.printf("voltage=%f",b_voltage);
00037     
00038     if (b_voltage >= BATTERY_INTERMEDIATE_HIGH_VOLTAGE )
00039          battery_voltage_condition = BATTERY_SCREEN_CHARGE_CONDITION;
00040     
00041     else if ((b_voltage <  BATTERY_INTERMEDIATE_HIGH_VOLTAGE ) && (b_voltage > BATTERY_MEDIUM_VOLTAGE))             // 15% to 10% Battery voltage
00042          battery_voltage_condition =  BATTERY_LOW_CHARGE_CONDITION ;
00043               
00044     else if ((b_voltage < BATTERY_MEDIUM_VOLTAGE) && (b_voltage > BATTERY_LOW_VOLTAGE))                             // 10% to 5% battery volage
00045         battery_voltage_condition =  BATTERY_CRITICALLY_LOW_CHARGE_CONDITION;
00046             
00047     else if (b_voltage < BATTERY_LOW_VOLTAGE)
00048          battery_voltage_condition = BATTERY_SCREEN_NO_CHARGE_CONDITION ;
00049                 
00050 }
00051 
00052 /*  Function    : To get battery status depending battery voltage 
00053     returns     : battery_voltage_condition
00054 
00055 */
00056 
00057 uint8_t get_battery_status()
00058 {
00059     
00060     return battery_voltage_condition;    
00061 }