エレキジャックweb mbed入門用です。 太陽光発電MPPT電流計測ユニット付きの改良型です。

Dependencies:   mbed

Committer:
takeuchi
Date:
Sun Oct 10 11:25:41 2010 +0000
Revision:
0:ac36f334a560

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:ac36f334a560 1 //2ak1009_Solar_VI
takeuchi 0:ac36f334a560 2 // for Solar charger Copyright by K.Takeuchi
takeuchi 0:ac36f334a560 3
takeuchi 0:ac36f334a560 4 #include "mbed.h"
takeuchi 0:ac36f334a560 5 #include "TextLCD2004.h"
takeuchi 0:ac36f334a560 6
takeuchi 0:ac36f334a560 7 #define ON 1
takeuchi 0:ac36f334a560 8 #define OFF 0
takeuchi 0:ac36f334a560 9 #define max_minutes 1
takeuchi 0:ac36f334a560 10 #define I_trim 0.15
takeuchi 0:ac36f334a560 11
takeuchi 0:ac36f334a560 12 AnalogIn Vbat_adc(p20);
takeuchi 0:ac36f334a560 13 AnalogIn Vsolar_adc(p19);
takeuchi 0:ac36f334a560 14 AnalogIn Isolar_adc(p18);
takeuchi 0:ac36f334a560 15
takeuchi 0:ac36f334a560 16 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
takeuchi 0:ac36f334a560 17 LocalFileSystem local("local");
takeuchi 0:ac36f334a560 18
takeuchi 0:ac36f334a560 19 int main() {
takeuchi 0:ac36f334a560 20 float Vbat,Vsolar,Isolar;
takeuchi 0:ac36f334a560 21 float Isolar_sum,Isolar_avg,Vsolar_sum,Vsolar_avg,Wsolar;
takeuchi 0:ac36f334a560 22 int k=0;
takeuchi 0:ac36f334a560 23 lcd.cls();
takeuchi 0:ac36f334a560 24 lcd.locate(0,0);
takeuchi 0:ac36f334a560 25 lcd.printf("=Solar MPPT Sys.=");
takeuchi 0:ac36f334a560 26 lcd.locate(0,1);
takeuchi 0:ac36f334a560 27 lcd.printf("System start!!");
takeuchi 0:ac36f334a560 28 wait(2.0);
takeuchi 0:ac36f334a560 29
takeuchi 0:ac36f334a560 30 while(1){
takeuchi 0:ac36f334a560 31 Vbat=Vbat_adc.read()*30;
takeuchi 0:ac36f334a560 32 Vsolar=Vsolar_adc.read()*30;
takeuchi 0:ac36f334a560 33 Isolar=(Isolar_adc.read()*3.3-2.5)/185*1000;
takeuchi 0:ac36f334a560 34 Wsolar=Vsolar_avg*Isolar_avg;
takeuchi 0:ac36f334a560 35 lcd.cls();
takeuchi 0:ac36f334a560 36 lcd.locate(0,0);
takeuchi 0:ac36f334a560 37 lcd.printf("=Solar MPPT Sys.=");
takeuchi 0:ac36f334a560 38 lcd.locate(0,1);
takeuchi 0:ac36f334a560 39 lcd.printf("Sp V:%2.1fV,I:%1.2fA",Vsolar_avg,Isolar_avg);
takeuchi 0:ac36f334a560 40 lcd.locate(0,2);
takeuchi 0:ac36f334a560 41 lcd.printf("Vbat:%2.1fV",Vbat);
takeuchi 0:ac36f334a560 42 lcd.locate(0,3);
takeuchi 0:ac36f334a560 43 lcd.printf("W:%2.2f",Wsolar);
takeuchi 0:ac36f334a560 44 wait(0.5);
takeuchi 0:ac36f334a560 45 lcd.locate(0,0);
takeuchi 0:ac36f334a560 46 lcd.printf("=Solar MPPT Sys =");
takeuchi 0:ac36f334a560 47 wait(0.5);
takeuchi 0:ac36f334a560 48 Vsolar_sum=Vsolar_sum+Vsolar;
takeuchi 0:ac36f334a560 49 Isolar_sum=Isolar_sum+Isolar;
takeuchi 0:ac36f334a560 50 k++;
takeuchi 0:ac36f334a560 51 if(k==10){
takeuchi 0:ac36f334a560 52 k=0;
takeuchi 0:ac36f334a560 53 Vsolar_avg=Vsolar_sum/10;
takeuchi 0:ac36f334a560 54 Isolar_avg=Isolar_sum/10-I_trim;
takeuchi 0:ac36f334a560 55 Vsolar_sum=0;
takeuchi 0:ac36f334a560 56 Isolar_sum=0;
takeuchi 0:ac36f334a560 57 }
takeuchi 0:ac36f334a560 58 }//while
takeuchi 0:ac36f334a560 59 }//main
takeuchi 0:ac36f334a560 60
takeuchi 0:ac36f334a560 61