![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
kalibratie, slag en terug naar "0-positie" - kp en ki (1,2 en 3) moeten nog beter bepaald worden
Dependencies: Encoder HIDScope mbed
Diff: main.cpp
- Revision:
- 12:eb2c7103a439
- Parent:
- 11:51e29f3d4545
- Child:
- 13:017aa9316f92
--- a/main.cpp Thu Oct 30 13:41:44 2014 +0000 +++ b/main.cpp Thu Oct 30 14:11:21 2014 +0000 @@ -32,6 +32,7 @@ float integral = 0; float batjeset = 0; //een if statement wordt "true" wanneer batje voor een bepaalde tijd de juiste hoek heeft behouden float balhit = 0; //balhit wordt 1 wanneer arm een bepaalde hoek heeft afgelegd +float calibration = 0; //heeft er een kalibratie plaatsgevonden? float setpoint1 = 8; // te behalen speed van motor1 (37D) float dt1 = 0.01; @@ -57,7 +58,26 @@ looptimer.attach(setlooptimerflag,TSAMP); pwm_motor1.period_us(100); //10kHz PWM frequency pwm_motor2.period_us(100); //10kHz PWM frequency - +/* +if(calibration==0){ + //calibration motor 2 + pwm_motor2.write(1); //lage PWM + motor2dir = 1; + wait(1); // anders wordt de while(1) meteen onderbroken + while(1) { + if(motor2.getSpeed > -0.5 || motor2.getSpeed < 0.5) { // ik weet niet of het rechtsom of linksom zal gaan en misschien is de speed bij de gekozen pwm wel binnen dit bereik + pwm_motor2.write(0); + motor2.setPosition(0); + } + break; + scope.set(0, motor2.getSpeed()); + scope.send(); + wait(0.1); + } + //kalibration motor 1 + calibration = 1; +} +*/ // nog een goto motor2control; // motor2control: while(1) { // loop voor het goed plaatsen van motor2 (batje hoek) @@ -149,7 +169,7 @@ //controleert of arm terug in positie is if(batjeset < 200) { - if (motor1.getPosition()*omrekenfactor1 > 0.1 || motor1.getPosition()*omrekenfactor1 < -0.1) { + if (motor1.getPosition()*omrekenfactor1 > 0.03 || motor1.getPosition()*omrekenfactor1 < -0.03) { batjeset = 0; } else { batjeset++;