
Goed werkende PID, vanaf nu dit script gebruiken.
Dependencies: Encoder HIDScope MODSERIAL mbed
Diff: main.cpp
- Revision:
- 5:cd1c63ffdc1a
- Parent:
- 4:6d88a281192f
--- a/main.cpp Fri Oct 23 07:49:51 2015 +0000 +++ b/main.cpp Fri Oct 23 08:24:04 2015 +0000 @@ -174,6 +174,12 @@ //reference2 = potmeter2.read()*4200; //draaiknop uitlezen, tussen 0 en 1 float hoek2 = bereken_hoek2(countsX,countsY); reference2=hoek2; + if (reference2 <500) { + reference2=500; + } + if (reference2 > 2100) { + reference2 = 2100; + } double position =(encoder2.getPosition()); // waarde tussen 0 en 4200 scope.set(2,reference2); @@ -231,8 +237,8 @@ } } -void motor1_PID_Controller_activate(){ - motor1_PID_Controller_go = true; +void motor2_PID_Controller_activate(){ + motor2_PID_Controller_go = true; } void countStepX_activate(){ @@ -263,7 +269,7 @@ buttonStateCheckX.attach( &checkButtonStateX,0.001f); buttonStateCheckY.attach( &checkButtonStateY,0.001f); */ - myControllerTicker1.attach( &motor1_PID_Controller_activate, 0.01f); // Function@ hz + myControllerTicker1.attach( &motor2_PID_Controller_activate, 0.01f); // Function@ hz countStepTickerX.attach( &countStepX_activate, 1.0f); // Function@ hz countStepTickerY.attach( &countStepY_activate, 1.04f); // Function@ hz buttonStateCheckX.attach( &checkButtonStateX_activate, 0.001f); // Function@ hz @@ -275,9 +281,9 @@ pc.printf(" 1: pos: %d, ref: %d, dif: %d, Ki: %.5f, Kd: %.5f, countsX: %d, countsY: %d \r\n", encoder1.getPosition(), reference1,difference1,m1_Kd,m1_Ki,countsX,countsY); //pc.printf(" 2: pos: %d, ref: %d, dif: %d \r\n", encoder2.getPosition(), reference2,difference2); - if(motor1_PID_Controller_go) { - motor1_PID_Controller_go = false; - motor1_PID_Controller(); + if(motor2_PID_Controller_go) { + motor2_PID_Controller_go = false; + motor2_PID_Controller(); } if(countStepX_go) { countStepX_go = false;