for Solar charger エレキジャックweb mbed入門用 URL:http://www.eleki-jack.com/

Dependencies:   mbed

main.cpp

Committer:
takeuchi
Date:
2010-09-25
Revision:
0:0f6da148c96b

File content as of revision 0:0f6da148c96b:

//2ak0918_Solar_LCD20X04
// for Solar charger Copyright by K.Takeuchi

#include "mbed.h"
#include "TextLCD0420.h"

#define ON 1
#define OFF 0

DigitalOut mled0(LED1);
DigitalOut mled1(LED2);
AnalogIn Vbat_adc(p20);
AnalogIn Vsolar_adc(p19);

TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3

int main() {
      float Vbat,Vsolar,Vbat_tmp;    
      lcd.cls();
      while(1){
        Vbat=Vbat_adc.read()*30;
        Vbat=(Vbat+Vbat_tmp)/2;
        Vsolar=Vsolar_adc.read()*30;
        lcd.cls();
        lcd.locate(0,0);
        lcd.printf("=Solar MPPT Sys.=");
        lcd.locate(0,1);
        lcd.printf("Vsolar:%2.1fV",Vsolar);
        lcd.locate(0,2);
        lcd.printf("Vbat:%2.1fV",Vbat);
        if(Vsolar > Vbat){
          lcd.locate(0,3);
          lcd.printf("=== Charging ====");
        }
        else if(Vsolar < 2.0){
          lcd.locate(0,3);
          if(Vbat >= 12.6){
            lcd.printf("== Batt:100%% ==");
          }
          else if(Vbat >= 12.4){
            lcd.printf("== Batt:75%% ==");
          }
          else if(Vbat >= 12.2){
            lcd.printf("== Batt:50%% ==");
          }
          else if(Vbat >= 12.0){
            lcd.printf("== Batt:25%% ==");
          }
          else{
            lcd.printf("== Battery Low!! ==");
          }
        }
        Vbat_tmp=Vbat;
        wait(0.5);
        lcd.locate(0,0);
        lcd.printf("=Solar MPPT Sys =");
        wait(0.5);
  }//while
}//main