Takeuchi Kouichi
/
2ak0918_Solar_LCD20X04
for Solar charger エレキジャックweb mbed入門用 URL:http://www.eleki-jack.com/
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Wed Jul 13 2022 20:34:33 by 1.7.2