Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- // connection
- LiquidCrystal lcd(9,8,10,11,12,13);
- byte elevator =7 ;
- byte levelSensor= 6 ;
- byte f1=1; byte f2=2; byte f3=3 ; byte f4=4 ; byte f5=5;
- byte service = 0;
- //up = A2; down = A4;break = A3;start time = A0 ; stop time = A1;
- // variables
- byte flour = 0; byte level = 1; bool motorstatus=0;
- int Tstop=0; int Tstart=0;
- void setup()
- { // setup
- lcd.begin(16,2);
- lcd.print(" stand by ");
- pinMode(elevator,OUTPUT); pinMode(levelSensor,OUTPUT);
- pinMode(f1,INPUT_PULLUP); pinMode(f2,INPUT_PULLUP);
- pinMode(f3,INPUT_PULLUP); pinMode(f4,INPUT_PULLUP);
- pinMode(f5,INPUT_PULLUP); pinMode(service,INPUT_PULLUP);
- pinMode(A2,OUTPUT); pinMode(A4,OUTPUT);pinMode(A3,OUTPUT);
- digitalWrite(A3,0);digitalWrite(A2,0);digitalWrite(A4,0);
- // check current floar
- digitalWrite(elevator,1);digitalWrite(levelSensor,0);
- if (digitalRead(f1)==0){ level =1;}
- else if (digitalRead(f2)==0){ level =2;}
- else if (digitalRead(f3)==0){ level =3;}
- else if (digitalRead(f4)==0){ level =4;}
- else if (digitalRead(f5)==0){ level =5;}
- if (level >0){lcd.setCursor(0,1); lcd.print(" flour ");lcd.print(level);}
- // check start and stop time
- Tstart=analogRead(A0);
- Tstop =analogRead(A1);
- Tstart=map(Tstart,0,1023,0,10000);
- Tstop =map(Tstop ,0,1023,0,10000);
- }
- void loop()
- {
- // service mode
- if (digitalRead(service)==0){
- lcd.setCursor(0,0); lcd.print(" service mode ");
- lcd.setCursor(0,1); lcd.print(" ");
- delay (2000);
- while(digitalRead(service)==0){
- Tstart=analogRead(A0);
- Tstop =analogRead(A1);
- Tstart=map(Tstart,0,1023,0,10000);
- Tstop =map(Tstop ,0,1023,0,10000);
- lcd.setCursor(0,0); lcd.print(" T start ");lcd.print(Tstart);lcd.print("ms ");
- lcd.setCursor(0,1); lcd.print(" T stop ");lcd.print(Tstop );lcd.print("ms ");
- }
- // seting before going out service mode
- lcd.setCursor(0,0); lcd.print(" stand by ");
- lcd.setCursor(0,1); lcd.print(" ");
- lcd.setCursor(0,1); lcd.print(" flour "); lcd.print(level);
- }
- else {
- // check switchs
- digitalWrite(elevator,0);digitalWrite(levelSensor,1);
- if (digitalRead(f1)==0){ flour =1;}
- else if (digitalRead(f2)==0){ flour =2;}
- else if (digitalRead(f3)==0){ flour =3;}
- else if (digitalRead(f4)==0){ flour =4;}
- else if (digitalRead(f5)==0){ flour =5;}
- // check floar and move motor
- if (flour >0){
- lcd.setCursor(0,0);lcd.print(" go to flour "); lcd.print(flour);lcd.print(" ");
- // check current floar
- digitalWrite(elevator,1);digitalWrite(levelSensor,0);
- if (digitalRead(f1)==0){ level =1;}
- else if (digitalRead(f2)==0){ level =2;}
- else if (digitalRead(f3)==0){ level =3;}
- else if (digitalRead(f4)==0){ level =4;}
- else if (digitalRead(f5)==0){ level =5;}
- // move motor
- if (flour>level){
- lcd.setCursor(0,1);lcd.print(" move up ");
- digitalWrite(A2,1);digitalWrite(A4,0);delay(Tstart); digitalWrite(A3,1);}
- else if (flour<level){
- lcd.setCursor(0,1);lcd.print(" move down ");
- digitalWrite(A2,0);digitalWrite(A4,1);delay(Tstart); digitalWrite(A3,1);}
- // Wait for arrival
- digitalWrite(elevator,1);digitalWrite(levelSensor,0);
- if (flour==1){while(digitalRead(f1)==1){}
- level=1;}
- else if (flour==2){while(digitalRead(f2)==1){}
- level=2;}
- else if (flour==3){while(digitalRead(f3)==1){}
- level=3;}
- else if (flour==4){while(digitalRead(f4)==1){}
- level=4;}
- else if (flour==5){while(digitalRead(f5)==1){}
- level=5;}
- }
- // stand by and stop motor
- if (digitalRead(A3)==1){
- digitalWrite(A3,0);delay(Tstop);digitalWrite(A2,0);digitalWrite(A4,0);
- lcd.setCursor(0,0); lcd.print(" stand by ");
- lcd.setCursor(0,1); lcd.print(" ");
- flour=0;
- lcd.setCursor(0,1); lcd.print(" flour "); lcd.print(level);}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement