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 00004 AnalogIn LM35(p14); 00005 DigitalOut WOpen(p5); 00006 DigitalOut WClose(p6); 00007 DigitalIn StepOpen(p8); 00008 DigitalIn StepClose(p7); 00009 DigitalOut AmberLED(p23); 00010 DigitalOut GreenLED(p22); 00011 DigitalOut RedLED(p21); 00012 00013 TextLCD lcd(p15, p16, p17, p18, p19, p20); //rs, e, d4-d7 00014 BusOut stepper_out(p30,p29,p28,p27); 00015 00016 int step=0; 00017 int x=0; 00018 int dir=1; //direction of motor 00019 00020 00021 int main() 00022 { 00023 float tempC,tempF,a[10],avg; //float integer for temp 00024 int i; 00025 00026 while(1) 00027 { 00028 avg=0; 00029 for(i=0;i<10;i++) 00030 { 00031 a[i]=LM35.read(); //read temp sensor 00032 AmberLED = 1 00033 wait(.02) 00034 AmberLED = 0 00035 wait(.02); 00036 } 00037 for(i=0;i<10;i++) 00038 { 00039 avg=avg+(a[i]/10); 00040 } 00041 00042 tempC=(avg*3.685503686*100); 00043 tempF=(9.0*tempC)/5.0 + 32.0; 00044 lcd.locate(0,0); 00045 lcd.printf(" Temperature "); //displays 'temperature' on the lcd screen 00046 lcd.locate(0,1); 00047 lcd.printf("%.2f C %.2f F",tempC,tempF); //displays the temperature reading on the LCD screen 00048 wait(.5); 00049 00050 if (tempC < 20.C) //If Temp is over 20 degrees, turn open window pin out on 00051 WClose = 1; 00052 Wopen = 0; 00053 GreenLed = 1; 00054 RedLed = 0; 00055 else //if Temp is not over 20 degree, turn close window pin out on 00056 WClose = 0; 00057 WOpen = 1; 00058 GreenLed = 0; 00059 RedLed = 1; 00060 00061 While (1) 00062 { 00063 if (StepOpen ==1){ 00064 for (x=0;x<=1024;x++); 00065 switch(Step) 00066 { 00067 case 0: stepper_out=0x1; break; //8 step mootor requires 8 cases 00068 case 1: stepper_out=0x3; break; 00069 case 2: stepper_out=0x2; break; 00070 case 3: stepper_out=0x6; break; 00071 case 4: stepper_out=0x4; break; 00072 case 5: stepper_out=0x5; break; 00073 case 6: stepper_out=0x8; break; 00074 case 7: stepper_out=0x9; break; 00075 default : stepper_out=0x0; break; 00076 } 00077 00078 if(dir) step++;else step--; 00079 00080 if(step>7) step=0; 00081 if(step<0) step=7; 00082 wait(0.005) ; //set speed of motor 00083 } 00084 00085 00086 00087 00088 00089 00090 } 00091 }
Generated on Fri Jul 15 2022 00:42:54 by
1.7.2