Omnyous Abizmol

Dependencies:   mbed TextLCD

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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  }