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

Dependencies:   mbed

Committer:
takeuchi
Date:
Sat Sep 25 08:42:36 2010 +0000
Revision:
0:0f6da148c96b

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:0f6da148c96b 1 //2ak0918_Solar_LCD20X04
takeuchi 0:0f6da148c96b 2 // for Solar charger Copyright by K.Takeuchi
takeuchi 0:0f6da148c96b 3
takeuchi 0:0f6da148c96b 4 #include "mbed.h"
takeuchi 0:0f6da148c96b 5 #include "TextLCD0420.h"
takeuchi 0:0f6da148c96b 6
takeuchi 0:0f6da148c96b 7 #define ON 1
takeuchi 0:0f6da148c96b 8 #define OFF 0
takeuchi 0:0f6da148c96b 9
takeuchi 0:0f6da148c96b 10 DigitalOut mled0(LED1);
takeuchi 0:0f6da148c96b 11 DigitalOut mled1(LED2);
takeuchi 0:0f6da148c96b 12 AnalogIn Vbat_adc(p20);
takeuchi 0:0f6da148c96b 13 AnalogIn Vsolar_adc(p19);
takeuchi 0:0f6da148c96b 14
takeuchi 0:0f6da148c96b 15 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
takeuchi 0:0f6da148c96b 16
takeuchi 0:0f6da148c96b 17 int main() {
takeuchi 0:0f6da148c96b 18 float Vbat,Vsolar,Vbat_tmp;
takeuchi 0:0f6da148c96b 19 lcd.cls();
takeuchi 0:0f6da148c96b 20 while(1){
takeuchi 0:0f6da148c96b 21 Vbat=Vbat_adc.read()*30;
takeuchi 0:0f6da148c96b 22 Vbat=(Vbat+Vbat_tmp)/2;
takeuchi 0:0f6da148c96b 23 Vsolar=Vsolar_adc.read()*30;
takeuchi 0:0f6da148c96b 24 lcd.cls();
takeuchi 0:0f6da148c96b 25 lcd.locate(0,0);
takeuchi 0:0f6da148c96b 26 lcd.printf("=Solar MPPT Sys.=");
takeuchi 0:0f6da148c96b 27 lcd.locate(0,1);
takeuchi 0:0f6da148c96b 28 lcd.printf("Vsolar:%2.1fV",Vsolar);
takeuchi 0:0f6da148c96b 29 lcd.locate(0,2);
takeuchi 0:0f6da148c96b 30 lcd.printf("Vbat:%2.1fV",Vbat);
takeuchi 0:0f6da148c96b 31 if(Vsolar > Vbat){
takeuchi 0:0f6da148c96b 32 lcd.locate(0,3);
takeuchi 0:0f6da148c96b 33 lcd.printf("=== Charging ====");
takeuchi 0:0f6da148c96b 34 }
takeuchi 0:0f6da148c96b 35 else if(Vsolar < 2.0){
takeuchi 0:0f6da148c96b 36 lcd.locate(0,3);
takeuchi 0:0f6da148c96b 37 if(Vbat >= 12.6){
takeuchi 0:0f6da148c96b 38 lcd.printf("== Batt:100%% ==");
takeuchi 0:0f6da148c96b 39 }
takeuchi 0:0f6da148c96b 40 else if(Vbat >= 12.4){
takeuchi 0:0f6da148c96b 41 lcd.printf("== Batt:75%% ==");
takeuchi 0:0f6da148c96b 42 }
takeuchi 0:0f6da148c96b 43 else if(Vbat >= 12.2){
takeuchi 0:0f6da148c96b 44 lcd.printf("== Batt:50%% ==");
takeuchi 0:0f6da148c96b 45 }
takeuchi 0:0f6da148c96b 46 else if(Vbat >= 12.0){
takeuchi 0:0f6da148c96b 47 lcd.printf("== Batt:25%% ==");
takeuchi 0:0f6da148c96b 48 }
takeuchi 0:0f6da148c96b 49 else{
takeuchi 0:0f6da148c96b 50 lcd.printf("== Battery Low!! ==");
takeuchi 0:0f6da148c96b 51 }
takeuchi 0:0f6da148c96b 52 }
takeuchi 0:0f6da148c96b 53 Vbat_tmp=Vbat;
takeuchi 0:0f6da148c96b 54 wait(0.5);
takeuchi 0:0f6da148c96b 55 lcd.locate(0,0);
takeuchi 0:0f6da148c96b 56 lcd.printf("=Solar MPPT Sys =");
takeuchi 0:0f6da148c96b 57 wait(0.5);
takeuchi 0:0f6da148c96b 58 }//while
takeuchi 0:0f6da148c96b 59 }//main
takeuchi 0:0f6da148c96b 60
takeuchi 0:0f6da148c96b 61