dhiltonp

detect unplugging after charging (hexbright)

Dec 23rd, 2012
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include <hexbright.h>
  2.  
  3. #include <Wire.h>
  4.  
  5. #define MS 20
  6. hexbright hb(MS);
  7.  
  8. #define OFF_MODE 0
  9. #define CHARGE_MODE 1
  10. #define AUTO_OFF_MODE 2
  11.  
  12. int auto_off_timer=0;
  13. int mode=CHARGE_MODE;
  14.  
  15. void setup() {
  16.   hb.init_hardware();
  17. }
  18.  
  19. void loop() {
  20.  hb.update();
  21.   // set mode
  22.   if(hb.button_held()>1000) { // off signal
  23.     // turn off light
  24.     hb.set_light(CURRENT_LEVEL,0,NOW);
  25.     if(hb.get_charge_state()==BATTERY) { // battery power, real off
  26.       mode=OFF_MODE;
  27.     } else { // plugged in, set CHARGE_MODE (pseudo off)
  28.       mode=CHARGE_MODE;
  29.     }
  30.   }
  31.  
  32.  
  33.  
  34.   if(mode==CHARGE_MODE) {
  35.     if(hb.get_charge_state()==BATTERY) {
  36.       hb.set_light(CURRENT_LEVEL,150,NOW);
  37.       mode=AUTO_OFF_MODE;
  38.       auto_off_timer=10000/MS; // 10 seconds
  39.     } else { // flash LED because we're plugged in
  40.       if(hb.get_led_state(GLED)==LED_OFF)
  41.         hb.set_led(GLED,100,350);
  42.     }
  43.   } else if (mode==AUTO_OFF_MODE) {
  44.     auto_off_timer--;
  45.     if (hb.get_charge_state()!=BATTERY) { // we're plugged in, (bad read?)
  46.       mode=CHARGE_MODE;
  47.     } else if(auto_off_timer==0) {
  48.       hb.shutdown();
  49.     }
  50.   } else if (mode==OFF_MODE) {
  51.     hb.shutdown();
  52.   }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment