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@2:c08efa9effc8, 2013-05-17 (annotated)
- 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?
User | Revision | Line number | New 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 | } |