Omnyous Abizmol

Dependencies:   mbed TextLCD

Committer:
leemcc
Date:
Sat May 23 18:11:31 2020 +0000
Revision:
0:3fd35ac0f458
Omnyous

Who changed what in which revision?

UserRevisionLine numberNew contents of line
leemcc 0:3fd35ac0f458 1 #include "mbed.h"
leemcc 0:3fd35ac0f458 2 #include "TextLCD.h"
leemcc 0:3fd35ac0f458 3
leemcc 0:3fd35ac0f458 4 AnalogIn LM35(p14);
leemcc 0:3fd35ac0f458 5 DigitalOut WOpen(p5);
leemcc 0:3fd35ac0f458 6 DigitalOut WClose(p6);
leemcc 0:3fd35ac0f458 7 DigitalIn StepOpen(p8);
leemcc 0:3fd35ac0f458 8 DigitalIn StepClose(p7);
leemcc 0:3fd35ac0f458 9 DigitalOut AmberLED(p23);
leemcc 0:3fd35ac0f458 10 DigitalOut GreenLED(p22);
leemcc 0:3fd35ac0f458 11 DigitalOut RedLED(p21);
leemcc 0:3fd35ac0f458 12
leemcc 0:3fd35ac0f458 13 TextLCD lcd(p15, p16, p17, p18, p19, p20); //rs, e, d4-d7
leemcc 0:3fd35ac0f458 14 BusOut stepper_out(p30,p29,p28,p27);
leemcc 0:3fd35ac0f458 15
leemcc 0:3fd35ac0f458 16 int step=0;
leemcc 0:3fd35ac0f458 17 int x=0;
leemcc 0:3fd35ac0f458 18 int dir=1; //direction of motor
leemcc 0:3fd35ac0f458 19
leemcc 0:3fd35ac0f458 20
leemcc 0:3fd35ac0f458 21 int main()
leemcc 0:3fd35ac0f458 22 {
leemcc 0:3fd35ac0f458 23 float tempC,tempF,a[10],avg; //float integer for temp
leemcc 0:3fd35ac0f458 24 int i;
leemcc 0:3fd35ac0f458 25
leemcc 0:3fd35ac0f458 26 while(1)
leemcc 0:3fd35ac0f458 27 {
leemcc 0:3fd35ac0f458 28 avg=0;
leemcc 0:3fd35ac0f458 29 for(i=0;i<10;i++)
leemcc 0:3fd35ac0f458 30 {
leemcc 0:3fd35ac0f458 31 a[i]=LM35.read(); //read temp sensor
leemcc 0:3fd35ac0f458 32 AmberLED = 1
leemcc 0:3fd35ac0f458 33 wait(.02)
leemcc 0:3fd35ac0f458 34 AmberLED = 0
leemcc 0:3fd35ac0f458 35 wait(.02);
leemcc 0:3fd35ac0f458 36 }
leemcc 0:3fd35ac0f458 37 for(i=0;i<10;i++)
leemcc 0:3fd35ac0f458 38 {
leemcc 0:3fd35ac0f458 39 avg=avg+(a[i]/10);
leemcc 0:3fd35ac0f458 40 }
leemcc 0:3fd35ac0f458 41
leemcc 0:3fd35ac0f458 42 tempC=(avg*3.685503686*100);
leemcc 0:3fd35ac0f458 43 tempF=(9.0*tempC)/5.0 + 32.0;
leemcc 0:3fd35ac0f458 44 lcd.locate(0,0);
leemcc 0:3fd35ac0f458 45 lcd.printf(" Temperature "); //displays 'temperature' on the lcd screen
leemcc 0:3fd35ac0f458 46 lcd.locate(0,1);
leemcc 0:3fd35ac0f458 47 lcd.printf("%.2f C %.2f F",tempC,tempF); //displays the temperature reading on the LCD screen
leemcc 0:3fd35ac0f458 48 wait(.5);
leemcc 0:3fd35ac0f458 49
leemcc 0:3fd35ac0f458 50 if (tempC < 20.C) //If Temp is over 20 degrees, turn open window pin out on
leemcc 0:3fd35ac0f458 51 WClose = 1;
leemcc 0:3fd35ac0f458 52 Wopen = 0;
leemcc 0:3fd35ac0f458 53 GreenLed = 1;
leemcc 0:3fd35ac0f458 54 RedLed = 0;
leemcc 0:3fd35ac0f458 55 else //if Temp is not over 20 degree, turn close window pin out on
leemcc 0:3fd35ac0f458 56 WClose = 0;
leemcc 0:3fd35ac0f458 57 WOpen = 1;
leemcc 0:3fd35ac0f458 58 GreenLed = 0;
leemcc 0:3fd35ac0f458 59 RedLed = 1;
leemcc 0:3fd35ac0f458 60
leemcc 0:3fd35ac0f458 61 While (1)
leemcc 0:3fd35ac0f458 62 {
leemcc 0:3fd35ac0f458 63 if (StepOpen ==1){
leemcc 0:3fd35ac0f458 64 for (x=0;x<=1024;x++);
leemcc 0:3fd35ac0f458 65 switch(Step)
leemcc 0:3fd35ac0f458 66 {
leemcc 0:3fd35ac0f458 67 case 0: stepper_out=0x1; break; //8 step mootor requires 8 cases
leemcc 0:3fd35ac0f458 68 case 1: stepper_out=0x3; break;
leemcc 0:3fd35ac0f458 69 case 2: stepper_out=0x2; break;
leemcc 0:3fd35ac0f458 70 case 3: stepper_out=0x6; break;
leemcc 0:3fd35ac0f458 71 case 4: stepper_out=0x4; break;
leemcc 0:3fd35ac0f458 72 case 5: stepper_out=0x5; break;
leemcc 0:3fd35ac0f458 73 case 6: stepper_out=0x8; break;
leemcc 0:3fd35ac0f458 74 case 7: stepper_out=0x9; break;
leemcc 0:3fd35ac0f458 75 default : stepper_out=0x0; break;
leemcc 0:3fd35ac0f458 76 }
leemcc 0:3fd35ac0f458 77
leemcc 0:3fd35ac0f458 78 if(dir) step++;else step--;
leemcc 0:3fd35ac0f458 79
leemcc 0:3fd35ac0f458 80 if(step>7) step=0;
leemcc 0:3fd35ac0f458 81 if(step<0) step=7;
leemcc 0:3fd35ac0f458 82 wait(0.005) ; //set speed of motor
leemcc 0:3fd35ac0f458 83 }
leemcc 0:3fd35ac0f458 84
leemcc 0:3fd35ac0f458 85
leemcc 0:3fd35ac0f458 86
leemcc 0:3fd35ac0f458 87
leemcc 0:3fd35ac0f458 88
leemcc 0:3fd35ac0f458 89
leemcc 0:3fd35ac0f458 90 }
leemcc 0:3fd35ac0f458 91 }