Lee McCreary
/
ProjectFile
Omnyous Abizmol
main.cpp@0:3fd35ac0f458, 2020-05-23 (annotated)
- Committer:
- leemcc
- Date:
- Sat May 23 18:11:31 2020 +0000
- Revision:
- 0:3fd35ac0f458
Omnyous
Who changed what in which revision?
User | Revision | Line number | New 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 | } |