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

Committer:
monpjc
Date:
Fri May 17 20:13:32 2013 +0000
Revision:
2:c08efa9effc8
Parent:
1:b1921e153d21
Child:
3:3b88d6ae24f2
Added Light Sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
monpjc 0:17ad5a30ff25 1 #include "mbed.h"
monpjc 1:b1921e153d21 2 #include "WiGo_BattCharger.h"
monpjc 2:c08efa9effc8 3 #include "WiGo_AmbLight.h"
monpjc 0:17ad5a30ff25 4
monpjc 0:17ad5a30ff25 5 #define RGB_LED_ON 0
monpjc 0:17ad5a30ff25 6 #define RGB_LED_OFF 1
monpjc 0:17ad5a30ff25 7
monpjc 0:17ad5a30ff25 8 DigitalOut myled1(LED1);
monpjc 0:17ad5a30ff25 9 DigitalOut myled2(LED2);
monpjc 0:17ad5a30ff25 10 DigitalOut myled3(LED3);
monpjc 0:17ad5a30ff25 11
monpjc 0:17ad5a30ff25 12 Serial pc(USBTX, USBRX);
monpjc 0:17ad5a30ff25 13
monpjc 1:b1921e153d21 14 WiGo_BattCharger Batt( BATT_LOW, BATT_MED, BATT_FULL, CHRG_EN1, CHRG_EN2, CHRG_SNS_EN, CHRG_SNS, CHRG_POK, CHRG_CHG);
monpjc 2:c08efa9effc8 15 WiGo_AmbLight Light( AMBLIGHT_EN, AMBLIGHT_LVL);
monpjc 0:17ad5a30ff25 16
monpjc 0:17ad5a30ff25 17 float max_batt;
monpjc 0:17ad5a30ff25 18 float batt_lvl;
monpjc 0:17ad5a30ff25 19
monpjc 0:17ad5a30ff25 20 int main()
monpjc 0:17ad5a30ff25 21 {
monpjc 2:c08efa9effc8 22 Batt.init(CHRG_500MA);
monpjc 1:b1921e153d21 23 Batt.sense_en(1);
monpjc 2:c08efa9effc8 24 Light.en(1);
monpjc 0:17ad5a30ff25 25 wait(0.5);
monpjc 1:b1921e153d21 26 max_batt = Batt.read();
monpjc 1:b1921e153d21 27
monpjc 0:17ad5a30ff25 28
monpjc 0:17ad5a30ff25 29 while(1) {
monpjc 0:17ad5a30ff25 30
monpjc 0:17ad5a30ff25 31 //If charging then blink Blue led to show we are alive
monpjc 1:b1921e153d21 32 if( Batt.charging() == CHARGING ) {
monpjc 0:17ad5a30ff25 33 myled2 = RGB_LED_OFF;
monpjc 0:17ad5a30ff25 34 myled3 = RGB_LED_OFF;
monpjc 0:17ad5a30ff25 35
monpjc 0:17ad5a30ff25 36 myled1 = RGB_LED_ON;
monpjc 0:17ad5a30ff25 37 wait(0.1);
monpjc 0:17ad5a30ff25 38 myled1 = RGB_LED_OFF;
monpjc 0:17ad5a30ff25 39 wait(0.9);
monpjc 0:17ad5a30ff25 40 }
monpjc 0:17ad5a30ff25 41
monpjc 0:17ad5a30ff25 42 //If no power applied (via USB) then turn all on, blink Bled led off
monpjc 1:b1921e153d21 43 if( Batt.supply() != POWER_OK ) {
monpjc 0:17ad5a30ff25 44 myled2 = RGB_LED_ON;
monpjc 0:17ad5a30ff25 45 myled3 = RGB_LED_ON;
monpjc 0:17ad5a30ff25 46
monpjc 0:17ad5a30ff25 47 myled1 = RGB_LED_OFF;
monpjc 0:17ad5a30ff25 48 wait(0.1);
monpjc 0:17ad5a30ff25 49 myled1 = RGB_LED_ON;
monpjc 0:17ad5a30ff25 50 wait(0.9);
monpjc 0:17ad5a30ff25 51 }
monpjc 0:17ad5a30ff25 52
monpjc 2:c08efa9effc8 53 Batt.LEDupdate(1);
monpjc 0:17ad5a30ff25 54
monpjc 1:b1921e153d21 55 batt_lvl = Batt.read();
monpjc 0:17ad5a30ff25 56 if( batt_lvl > max_batt ) {
monpjc 0:17ad5a30ff25 57 max_batt = batt_lvl;
monpjc 0:17ad5a30ff25 58 }
monpjc 0:17ad5a30ff25 59
monpjc 2:c08efa9effc8 60 pc.printf(">%f Max:%f %i %i\n\r", batt_lvl, max_batt, Batt.level(), Light.level());
monpjc 0:17ad5a30ff25 61 }
monpjc 0:17ad5a30ff25 62 }