Used for testing battery sense circuit, looking for max and min levels. Allow for finding true empty, half and full values for driving LEDs for example

Dependencies:   mbed MPL3115A2 TSI WiGo_BattCharger

main.cpp

Committer:
monpjc
Date:
2013-05-17
Revision:
2:c08efa9effc8
Parent:
1:b1921e153d21
Child:
3:3b88d6ae24f2

File content as of revision 2:c08efa9effc8:

#include "mbed.h"
#include "WiGo_BattCharger.h"
#include "WiGo_AmbLight.h"

#define RGB_LED_ON  0
#define RGB_LED_OFF 1

DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);

Serial pc(USBTX, USBRX);

WiGo_BattCharger Batt( BATT_LOW, BATT_MED, BATT_FULL, CHRG_EN1, CHRG_EN2, CHRG_SNS_EN, CHRG_SNS, CHRG_POK, CHRG_CHG);
WiGo_AmbLight Light( AMBLIGHT_EN, AMBLIGHT_LVL);

float max_batt;
float batt_lvl;

int main()
{
    Batt.init(CHRG_500MA);
    Batt.sense_en(1);
    Light.en(1);
    wait(0.5);
    max_batt = Batt.read();


    while(1) {

        //If charging then blink Blue led to show we are alive
        if( Batt.charging() == CHARGING ) {
            myled2 = RGB_LED_OFF;
            myled3 = RGB_LED_OFF;

            myled1 = RGB_LED_ON;
            wait(0.1);
            myled1 = RGB_LED_OFF;
            wait(0.9);
        }

        //If no power applied (via USB) then turn all on, blink Bled led off
        if( Batt.supply() != POWER_OK ) {
            myled2 = RGB_LED_ON;
            myled3 = RGB_LED_ON;

            myled1 = RGB_LED_OFF;
            wait(0.1);
            myled1 = RGB_LED_ON;
            wait(0.9);
        }

        Batt.LEDupdate(1);

        batt_lvl = Batt.read();
        if( batt_lvl > max_batt ) {
            max_batt = batt_lvl;
        }

        pc.printf(">%f Max:%f %i %i\n\r", batt_lvl, max_batt, Batt.level(), Light.level());
    }
}