For coursework of group 3 in SOFT564Z

Dependencies:   Motordriver ros_lib_kinetic

Battery_Monitor.cpp

Committer:
Jonathan738
Date:
2019-12-05
Revision:
7:2796f0b5228d
Parent:
4:8afc50a3e4ac
Child:
11:0b9098ec11c7

File content as of revision 7:2796f0b5228d:

#include "mbed.h"
#include "Debug.hpp"
#include "Battery_Monitor.hpp"
#include "General.hpp"
#include "Pins.h"

void Battery_Monitor::battCheck(void)
{
    float Read_V_Batt = this->V_Batt.read();

    float temp_batLev = Read_V_Batt - Minimum_VBatt;
    this->Battery_Level = (Maximum_VBatt - Minimum_VBatt) / temp_batLev;
    
    Channel_1.write(this->Battery_Level);
    Channel_2.write(1.0f-(this->Battery_Level));

    char Btry_lvl_string[20];
    sprintf(Btry_lvl_string, "Battery Level is : %1.2f",Battery_Level);
    Flag_Error(warning, Btry_lvl_string);
    
    if(this->Battery_Level < 0.2f && this->Battery_Level > 0.1f)
    {  
        Flag_Error(warning, "Power Below 20% - Charging Required!\n\r");
    } else if(this->Battery_Level < 0.05f) {  
        Flag_Error(criticalFAILURE, "Power Below 5% - Power Failure Iminent!\n\r");
    }
    //pc.printf("Voltage readings are: VBATT: %f\n\r", Read_V_Batt);
}