jkfodk
Dependencies: Encoder MODSERIAL mbed
Revision 5:512dd4044486, committed 2013-10-30
- Comitter:
- Tess
- Date:
- Wed Oct 30 10:10:29 2013 +0000
- Parent:
- 4:8344a3edd96c
- Child:
- 6:2cfdda6721ab
- Commit message:
- version 4; do while loop made but not working
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Oct 30 08:54:12 2013 +0000 +++ b/main.cpp Wed Oct 30 10:10:29 2013 +0000 @@ -69,11 +69,10 @@ //START OF CODE - /*Set the baudrate (use this number in RealTerm too! */ + /*Set the baudrate (use this number in RealTerm too!) */ pc.baud(921600); - - // in dit stukje code zorgen we ervoor dat de startpositie wordt bereikt. Eerst B botsen dan A botsen + // in dit stukje code zorgen we ervoor dat de arm gaat draaien naar rechts en stopt als het tegen het frame komt. Eerst motor B botsen dan motor A botsen motordirB.write(0); pwm_motorB.write(.08); positionmotorB_t0 = motorB.getPosition(); @@ -98,70 +97,41 @@ motorA.setPosition(0); pwm_motorA.write(0); - // motor A moet als eerst naar x-as, moet 4.11 graden naar links om op de x-as te staan - // motor B moet 21.6 graden naar links. - // eerst motor A en dan motor B + // Hierna willen we de motor van zijn aller uiterste positie naar de x-as hebben. Hiervoor moet motor A eerst op de x-as worden gezet. Hiervoor moet motor A 4.11 graden (63) naar links. + // Hierna moet motor B 21.6 (192) graden naar links. Dus eerst motor A en dan motor B. - // motordirA.write(1); - //setpoint_beginA = 63.5; // naar x-as gaan - //pwm_to_begin_motorA = setpoint_beginA *.001; - //keep_in_range(&pwm_to_begin_motorA, -1,1); - //pwm_motorA.write(abs(pwm_to_begin_motorA)); - //motorA.setPosition(0); - //pwm_motorA.write(0); + Ticker looptimer; + looptimer.attach(setlooptimerflag,0.01); - //motordirB.write(1); - //setpoint_beginB = 192; // naar x-as gaan - //pwm_to_begin_motorB = setpoint_beginB *.001; - //keep_in_range(&pwm_to_begin_motorB, -1,1); - //pwm_motorB.write(abs(pwm_to_begin_motorB)); - //motorB.setPosition(0); - //pwm_motorB.write(0); - Ticker looptimer1; - looptimer1.attach(setlooptimerflag,0.01); - - while(pwm_to_begin_motorA >= 0) { + do { + //pwm_to_begin_motorA = abs((setpoint_beginA - motorA.getPosition()) *.001); + } while(pwm_to_begin_motorA <= 0.001); { while(looptimerflag != true); - looptimerflag = false; - - setpoint_beginA = 63; // naar x-as gaan - pwm_to_begin_motorA = (setpoint_beginA - motorA.getPosition()) *.001; + setpoint_beginA = -1000; //-63 negatief omdat de motor op zijn kop hangt + pwm_to_begin_motorA = abs((setpoint_beginA - motorA.getPosition()) *.001); keep_in_range(&pwm_to_begin_motorA, -1, 1 ); - - //if(pwm_to_begin_motorA <= 0) { - // motordirA.write(0); - // motorA.setPosition(0); - //pwm_motorA.write(0); - //} else { motordirA.write(0); - pwm_motorA.write(abs(pwm_to_begin_motorA)); + pwm_motorA.write(pwm_to_begin_motorA); } motorA.setPosition(0); pwm_motorA.write(0); - //Ticker looptimer2; - //looptimer2.attach(setlooptimerflag,0.01); - - while(pwm_to_begin_motorB >= 0) { + do{ + pwm_to_begin_motorB = abs((setpoint_beginB - motorB.getPosition()) *.001); + } + while(pwm_to_begin_motorB <= 0.001); { while(looptimerflag != true); looptimerflag = false; - - setpoint_beginB = 192; //192 - pwm_to_begin_motorB = (setpoint_beginB - motorB.getPosition()) *.001; + setpoint_beginB = 1000; //192 keep_in_range(&pwm_to_begin_motorB, -1,1); - //if(pwm_to_begin_motorB <= 0) { - // motordirB.write(0); - //motorB.setPosition(0); - //pwm_motorB.write(0); - //} else { motordirB.write(1); - pwm_motorB.write(abs(pwm_to_begin_motorB)); + pwm_motorB.write(pwm_to_begin_motorB); } motorB.setPosition(0); pwm_motorB.write(0); -// nu naar positie rechtsonderhoek A4 deze is motor A 531.6 en motor B 460 +// nu naar positie rechtsonderhoek A4 deze is voor motor A 532 en voor motor B 460 //while(0) ///1 //{ @@ -194,25 +164,17 @@ //} - //Ticker looptimer3; - //looptimer3.attach(setlooptimerflag,0.01); - //looptimer3.detach(); - - while((pwm_to_begin_motorA >= 0)&&(pwm_to_begin_motorB >= 0)) { while(looptimerflag != true); - looptimerflag = false; setpoint_beginA = 1000;//532 // naar rechteronderhoek A4 pwm_to_begin_motorA = (setpoint_beginA - motorA.getPosition()) *.001; keep_in_range(&pwm_to_begin_motorA, -1, 1 ); - motordirA.write(0); pwm_motorA.write(abs(pwm_to_begin_motorA)); while(looptimerflag != true); - looptimerflag = false; setpoint_beginB = 1000; //460 @@ -228,8 +190,6 @@ /*Create a ticker, and let it call the */ /*function 'setlooptimerflag' every 0.01s */ - //Ticker looptimer; - //looptimer.attach(setlooptimerflag,0.01); //INFINITE LOOP while(1) {