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

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //2ak0918_Solar_LCD20X04
00002 // for Solar charger Copyright by K.Takeuchi
00003 
00004 #include "mbed.h"
00005 #include "TextLCD0420.h"
00006 
00007 #define ON 1
00008 #define OFF 0
00009 
00010 DigitalOut mled0(LED1);
00011 DigitalOut mled1(LED2);
00012 AnalogIn Vbat_adc(p20);
00013 AnalogIn Vsolar_adc(p19);
00014 
00015 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
00016 
00017 int main() {
00018       float Vbat,Vsolar,Vbat_tmp;    
00019       lcd.cls();
00020       while(1){
00021         Vbat=Vbat_adc.read()*30;
00022         Vbat=(Vbat+Vbat_tmp)/2;
00023         Vsolar=Vsolar_adc.read()*30;
00024         lcd.cls();
00025         lcd.locate(0,0);
00026         lcd.printf("=Solar MPPT Sys.=");
00027         lcd.locate(0,1);
00028         lcd.printf("Vsolar:%2.1fV",Vsolar);
00029         lcd.locate(0,2);
00030         lcd.printf("Vbat:%2.1fV",Vbat);
00031         if(Vsolar > Vbat){
00032           lcd.locate(0,3);
00033           lcd.printf("=== Charging ====");
00034         }
00035         else if(Vsolar < 2.0){
00036           lcd.locate(0,3);
00037           if(Vbat >= 12.6){
00038             lcd.printf("== Batt:100%% ==");
00039           }
00040           else if(Vbat >= 12.4){
00041             lcd.printf("== Batt:75%% ==");
00042           }
00043           else if(Vbat >= 12.2){
00044             lcd.printf("== Batt:50%% ==");
00045           }
00046           else if(Vbat >= 12.0){
00047             lcd.printf("== Batt:25%% ==");
00048           }
00049           else{
00050             lcd.printf("== Battery Low!! ==");
00051           }
00052         }
00053         Vbat_tmp=Vbat;
00054         wait(0.5);
00055         lcd.locate(0,0);
00056         lcd.printf("=Solar MPPT Sys =");
00057         wait(0.5);
00058   }//while
00059 }//main
00060 
00061