a
Dependencies: MotorDriver_SU mbed
center.cpp
- Committer:
- 12F2041G
- Date:
- 2014-11-19
- Revision:
- 0:cc0c03ee56b3
File content as of revision 0:cc0c03ee56b3:
#include "mbed.h" #include "MotorDriver_SU.h" DigitalIn sw(P0_1, PullUp); // trace L to R DigitalIn sensor1(P0_16); DigitalIn sensor2(P0_13); DigitalIn sensor3(P0_11); // lift L to R DigitalIn sensor4(P0_21); DigitalIn sensor5(P0_22); DigitalOut led(P1_28); MotorDriver_SU motor(MOTOR_DOUBLE); MotorDriver_SU lift(MOTOR_SINGLE); int main(){ while(1){ //int height = 0;//lift position int check1 = 0;//convert count int check2 = 0; int count = 0;//count liftsensor B&B while(sw == 0){ motor.Drive(0, STOP, 0); //R motor.Drive(1, STOP, 0);//L lift.Drive(0, STOP, 0); } ////////////////////////////////////////////////////////// //need to change some numerical value after test ////////////////////////////////////////////////////////// while(sw == 1){ if(sensor1 == 1 && sensor2 == 1 && sensor3 == 0){ motor.Drive(0, CW, 500); motor.Drive(1, CW, 1500); } else if(sensor1 == 1 && sensor2 == 0 && sensor3 == 1 && sensor4 == 1 && sensor5 == 1){ motor.Drive(0, CW, 1000); motor.Drive(1, CW, 1000); lift.Drive(0, STOP, 0); } else if(sensor1 == 1 && sensor2 == 0 && sensor3 == 1 && sensor4 == 0 && sensor5 == 0){ if( count == 0){ lift.Drive(0, CW, 4095); //lift up motor.Drive(0, STOP, 0); //stop motor.Drive(1, STOP, 0); wait(1); motor.Drive(0, CW, 1000); //restart motor.Drive(1, CW, 1000); lift.Drive(0, CW, 4095); //lift up more wait(0.7); lift.Drive(0, STOP, 0); //height = 1;//lift position high count++; } //need to change count[1,2,3...] after test else if(count == 1){ count++; } else if(count == 2){ count++; } else if(count == 3){ motor.Drive(0, STOP, 0); motor.Drive(1, STOP, 0); lift.Drive(0, CCW, 2000);//lift down wait(1.3); motor.Drive(0, CCW, 4095);//back for 2 seconds motor.Drive(1, CCW, 4095); lift.Drive(0, STOP, 0); wait(2); //height = 0;//lift position low count = 0;//reset } else{ ; } } else if(sensor1 == 0 && sensor2 == 1 && sensor3 == 1){ motor.Drive(0, CW, 1500); motor.Drive(1, STOP, 500); } else if(sensor1 == 0 && sensor2 == 0 && sensor3 == 1){ motor.Drive(0, CW, 1500); motor.Drive(1, CW, 500); } else if(sensor1 == 1 && sensor2 == 0 && sensor3 == 0){ motor.Drive(0, CW, 500); motor.Drive(1, CW, 1500); } else if(sensor1 == 0 && sensor2 == 1 && sensor3 == 0){ motor.Drive(0, CCW, 500); motor.Drive(1, CCW, 500); } /*else if(sensor1 == 1 && sensor2 == 1 && sensor3 == 1){ motor.Drive(0, CW, 2048); motor.Drive(1, STOP, 0); lift.Drive(0, STOP, 0); }*/ //all body on line's outside else if(sensor1 == 1 && sensor2 == 1 && sensor3 == 1 ){ motor.Drive(0, CCW, 200); motor.Drive(1, CW, 2000); lift.Drive(0, STOP, 0); } //select course condition else if(sensor2 == 0 && sensor4 == 1 && sensor5 == 0){ if(check1 == 0){ check1 = 1; //enter the right courses motor.Drive(0, CW, 500);//change both speed motor.Drive(1, CW, 1500); wait(1); } else{ ;//response only once } } else if(sensor2 == 0 && sensor4 == 0 && sensor5 == 1){ if(check2 == 0){ check2 = 1; //enter the center course motor.Drive(0, CW, 1500);//change both speed motor.Drive(1, CW, 500); wait(1); } else{ ;//response only once } } else{ motor.Drive(0, CW, 2500);//spin to search correct way motor.Drive(1, CW, 500); } } } }