Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 #include "TextLCD.h" 00003 #include "string.h" 00004 00005 #define MAXSamples 50 00006 00007 #define MaxInsol 1160.0 00008 #define MaxTemp 1160.0 00009 00010 00011 TextLCD lcd(PA_8, PB_10, PA_10, PB_3, PB_5, PB_4); // rs, e, d4-d7 00012 00013 AnalogIn Insol(A4); 00014 AnalogIn Temp(A5); 00015 00016 Serial pc(SERIAL_TX, SERIAL_RX); 00017 DigitalOut myled(LED1); 00018 float InsolR, TempR; 00019 uint16_t InsolMap, TempMap; 00020 00021 char buff[40]; 00022 //uint16_t buffer[7]; 00023 int i; 00024 uint16_t FIFOI[5],FIFOT[5]; 00025 00026 uint32_t val; 00027 uint32_t count; 00028 00029 int main() { 00030 00031 /* 00032 while(1){ 00033 00034 sprintf(buff,"Inso:%4u Temp:%4u",Insol.read_u16(),Temp.read_u16()); 00035 00036 pc.printf(buff);pc.printf("\n"); 00037 wait(0.2); 00038 00039 } 00040 */ 00041 00042 00043 00044 00045 00046 00047 00048 00049 count=0; 00050 while(1) { 00051 00052 pc.printf("Count: %6u:",count++);pc.printf(" "); 00053 00054 val=0; 00055 for(i=1;i<=MAXSamples;i++){ 00056 val += Insol.read_u16(); 00057 } 00058 val /= MAXSamples; 00059 FIFOI[0] = FIFOI[1]; 00060 FIFOI[1] = FIFOI[2]; 00061 FIFOI[2] = FIFOI[3]; 00062 FIFOI[3] = FIFOI[4]; 00063 FIFOI[4] = (uint16_t)val; 00064 val = 0; 00065 for(i=0;i<=4;i++){ 00066 val += FIFOI[i]; 00067 } 00068 val /= 5; 00069 InsolR = (float) val; 00070 00071 val=0; 00072 for(i=1;i<=MAXSamples;i++){ 00073 val += Temp.read_u16(); 00074 } 00075 val /= MAXSamples; 00076 FIFOT[0] = FIFOT[1]; 00077 FIFOT[1] = FIFOT[2]; 00078 FIFOT[2] = FIFOT[3]; 00079 FIFOT[3] = FIFOT[4]; 00080 FIFOT[4] = (uint16_t)val; 00081 val = 0; 00082 for(i=0;i<=4;i++){ 00083 val += FIFOT[i]; 00084 } 00085 val /= 5; 00086 TempR = (float) val; 00087 00088 00089 00090 InsolMap = (uint16_t)(InsolR * MaxInsol/4095.0); 00091 TempMap = (uint16_t) (TempR *MaxTemp/4095.0); 00092 00093 sprintf(buff,"Inso:%4u mW/cm2",InsolMap/10); 00094 pc.printf(buff);pc.printf(" "); 00095 00096 lcd.locate(0,0); 00097 lcd.printf(buff); 00098 00099 sprintf(buff,"Temp:%4u deg C",TempMap/10); 00100 pc.printf(buff);pc.printf("\n"); 00101 00102 lcd.locate(0,1); 00103 lcd.printf(buff); 00104 myled = !myled; 00105 wait(.2); 00106 } 00107 }
Generated on Wed Jul 13 2022 09:44:22 by
1.7.2