Mohammed Alshiekh
/
elevator_with_queue
course work
Diff: elevator.cpp
- Revision:
- 6:1f9baf8d833e
- Parent:
- 5:15bb8f6b6d85
- Child:
- 7:9ff7df122ff6
--- a/elevator.cpp Fri Oct 09 00:03:10 2015 +0000 +++ b/elevator.cpp Sun Oct 11 21:32:14 2015 +0000 @@ -44,17 +44,20 @@ first = 0; once++; frequency = 1./time1.read(); + - if (once == 2){ + if (once == 200){ once = 0; - if (frequency >= 900 && frequency <= 1100){currentfloor = 5;} - else if (frequency >= 600 && frequency <= 800){currentfloor = 4;led4 = 1;} - else if (frequency >= 400 && frequency <= 590){currentfloor = 3;led3 = 1;} - else if (frequency >= 200 && frequency <= 300){currentfloor = 2;led2 = 1;} - else if (frequency >= 50 && frequency <= 150){currentfloor = 1;} + if (frequency >= 900.0f && frequency <= 1100.0f){currentfloor = 5;} + else if (frequency >= 600.0f && frequency <= 800.0f){currentfloor = 4;} + else if (frequency >= 400.0f && frequency <= 590.0f){currentfloor = 3;} + else if (frequency >= 200.0f && frequency <= 300.0f){currentfloor = 2;} + else if (frequency >= 50.0f && frequency <= 150.0f){currentfloor = 1;} if (currentfloor == requested_floor){ + pc.printf("served: %d floor frequency: %f \n",currentfloor,frequency); + dc_motor.write(0.0f); led1 = 0; led2 = 0; @@ -69,6 +72,7 @@ servo2.write(stationary); busy = 0; location = requested_floor; + pc.printf("at: %d \n",location); sensor.fall(0); } @@ -79,14 +83,14 @@ } void moveUp(){ - dc_motor.write(1.0f); + dc_motor.write(0.9f); in1 = 1; in2 = 0; } void moveDown(){ - dc_motor.write(1.0f); + dc_motor.write(0.9f); in1 = 0; in2 = 1; } @@ -112,18 +116,18 @@ if (busy == 0 && next > 0.5){ requested_floor = next; if (location > next){ + pc.printf("serving: %d \n",next); closeDoor(); moveDown(); busy = 1; - led1 = 1; sensor.fall(&serve); } else if (location < next ){ + pc.printf("serving: %d \n",next); closeDoor(); moveUp(); busy = 1; - led1 = 1; sensor.fall(&serve); } } @@ -150,31 +154,30 @@ // thirdfloor.rise(&call3); // fourthfloor.rise(&call4); // fifthfloor.rise(&call5); - location = 2; + location = 1; // while(1){ while(busy == 0){ - if (an.read()*3.3f > 0.62f && an.read()*3.3f < 1.0f ){requested_floor1 = 1;} - else if (an.read()*3.3f > 1.20f && an.read()*3.3f < 1.60f ){requested_floor1 = 2;} - else if (an.read()*3.3f > 1.70f && an.read()*3.3f < 2.3f ){requested_floor1 = 3;} - else if (an.read()*3.3f > 2.4f && an.read()*3.3f < 2.9f ){requested_floor1 = 4;} - else if (an.read()*3.3f > 3.0f && an.read()*3.3f < 3.5f ){requested_floor1 = 5;} + if (an.read()*3.3f > 0.62f && an.read()*3.3f < 1.0f ){requested_floor1 = 1;} //1 + else if (an.read()*3.3f > 1.20f && an.read()*3.3f < 1.60f ){requested_floor1 = 2;}//2 + else if (an.read()*3.3f > 1.70f && an.read()*3.3f < 2.3f ){requested_floor1 = 3;} //3 + else if (an.read()*3.3f > 2.4f && an.read()*3.3f < 2.9f ){requested_floor1 = 4;} //4 + else if (an.read()*3.3f > 3.0f && an.read()*3.3f < 3.5f ){requested_floor1 = 5;} //5 else{requested_floor1 = 0;} - if (an.read()*3.3f > 0.62f && an.read()*3.3f < 1.0f ){requested_floor2 = 1;} - else if (an.read()*3.3f > 1.20f && an.read()*3.3f < 1.60f ){requested_floor2 = 2;} - else if (an.read()*3.3f > 1.70f && an.read()*3.3f < 2.3f ){requested_floor2 = 3;} - else if (an.read()*3.3f > 2.4f && an.read()*3.3f < 2.9f ){requested_floor2 = 4;} + if (an.read()*3.3f > 0.62f && an.read()*3.3f < 1.0f ){requested_floor2 = 1;led1 = 1;} + else if (an.read()*3.3f > 1.20f && an.read()*3.3f < 1.60f ){requested_floor2 = 2;led2 = 1;} + else if (an.read()*3.3f > 1.70f && an.read()*3.3f < 2.3f ){requested_floor2 = 3;led3 = 1;} + else if (an.read()*3.3f > 2.4f && an.read()*3.3f < 2.9f ){requested_floor2 = 4; led4 = 1;} else if (an.read()*3.3f > 3.0f && an.read()*3.3f < 3.5f ){requested_floor2 = 5;} else{requested_floor2 = 0;} if (requested_floor1 != requested_floor2) {requested_floor = 0;} else{requested_floor = requested_floor1;} - pc.printf("%f \n",an.read()*3.3f); - pc.printf("%d \n",requested_floor); + call(requested_floor); } }