![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
potmeter motor aansturing
Dependencies: MODSERIAL mbed Project_script_encoder QEI
Fork of Project_script by
Diff: main.cpp
- Revision:
- 16:5f7196ddc77b
- Parent:
- 15:be67b090b64a
- Child:
- 17:741798018c0d
--- a/main.cpp Mon Oct 22 09:35:55 2018 +0000 +++ b/main.cpp Mon Oct 22 12:04:18 2018 +0000 @@ -8,8 +8,8 @@ AnalogIn emg1_in (A1); AnalogIn emg2_in (A2); -InterruptIn button1 (SW2); //Let op, is deze niet bezet? En 11? Even checken, als er een error komt, kan het hier zitten. -InterruptIn button2 (SW3); +InterruptIn button1 (D10); //Let op, is deze niet bezet? En 11? Even checken, als er een error komt, kan het hier zitten. +InterruptIn button2 (D11); InterruptIn encoderA (D9); InterruptIn encoderB (D8); @@ -164,7 +164,7 @@ if(x>=4) //Reset back to x = 0 { - x = 0; + x = -1; } } @@ -298,58 +298,60 @@ encoderB.rise(&encoderB_rise); encoderB.fall(&encoderB_fall); - while (true) - { - //Motor aansturen en encoder uitlezen - //float u1 = potmetervalue1; - //float u2 = potmetervalue2; - - //float m1 = ((u1*2.0f)-1.0f); - //float m2 = ((u2*2.0f)-1.0f); - - //pwmpin1 = fabs(m1*0.6f)+0.4f; //pwm duty cycle can only be positive, floating, 0.4f is "inefficiënt", dit tellen we erbij op, en keer 0.6 om te corrigeren voor de helling. - - if(emgfilter0>Threshold0) - { - pwmpin1 = 1; - directionpin1.write(1); - } - else - { - pwmpin1 = 0; - } - - if(emgfilter1>Threshold1) - { - pwmpin2 = 1; - directionpin2.write(1); - } - else - { - pwmpin2 = 0; - } - if(emgfilter2>Threshold2) - { - pwmpin1 = 1; - pwmpin2 = 2; - directionpin1.write(1); - directionpin2.write(1); - } - else - { - pwmpin1 = 0; - pwmpin2 = 0; - } - - //Indien waar, motor draait rechtsom. Indien niet waar, motor draait linksom. - //wait(0.01f); //zodat de code niet oneindig doorgaat. - //pwmpin2 = fabs(m2*0.6f)+0.4f; - //directionpin2.write(m2>0); - - //float encoderDegrees = float(encoder)*(360.0/8400.0); + if(emg_cal==1) + { + while (true) + { + //Motor aansturen en encoder uitlezen + //float u1 = potmetervalue1; + //float u2 = potmetervalue2; + + //float m1 = ((u1*2.0f)-1.0f); + //float m2 = ((u2*2.0f)-1.0f); + + //pwmpin1 = fabs(m1*0.6f)+0.4f; //pwm duty cycle can only be positive, floating, 0.4f is "inefficiënt", dit tellen we erbij op, en keer 0.6 om te corrigeren voor de helling. + + if(emgfilter0>Threshold0) + { + pwmpin1 = 1; + directionpin1.write(1); + } + else + { + pwmpin1 = 0; + } - //pc.printf("Encoder count: %f \n\r",encoderDegrees); + if(emgfilter1>Threshold1) + { + pwmpin2 = 1; + directionpin2.write(1); + } + else + { + pwmpin2 = 0; + } + if(emgfilter2>Threshold2) + { + pwmpin1 = 1; + pwmpin2 = 2; + directionpin1.write(1); + directionpin2.write(1); + } + else + { + pwmpin1 = 0; + pwmpin2 = 0; + } + + //Indien waar, motor draait rechtsom. Indien niet waar, motor draait linksom. + //wait(0.01f); //zodat de code niet oneindig doorgaat. + //pwmpin2 = fabs(m2*0.6f)+0.4f; + //directionpin2.write(m2>0); + + //float encoderDegrees = float(encoder)*(360.0/8400.0); + + //pc.printf("Encoder count: %f \n\r",encoderDegrees); } } - +}