
motor aansturing moet lineair zijn is het niet
Dependencies: MODSERIAL Encoder mbed HIDScope
main.cpp
- Committer:
- Zeekat
- Date:
- 2015-09-28
- Revision:
- 6:3031e8abb052
- Parent:
- 5:46dae55f0ab0
- Child:
- 7:eb239942830d
File content as of revision 6:3031e8abb052:
#include "mbed.h" #include "MODSERIAL.h" #include "QEI.h" Serial pc(USBTX,USBRX); Ticker mod; //MOTOR // motor 1 en 2 zijn omgedraait // pinnen motor 1 -> pinnen motor 2 //motor 1 gegevens PwmOut motor1_aan(D6); // PWM signaal motor 2 (uit sheets) DigitalOut motor1_rich(D7); // digitaal signaal voor richting // einde motor 1 //motor 2 gegevens PwmOut motor2_aan(D5); // PWM signaal motor 1 (uit sheets) DigitalOut motor2_rich(D4); // digitaal signaal voor richting // einde motor 1 //EINDE MOTOR // ENcoDER QEI motor1_enc(D12,D11,NC,64); QEI motor2_enc(D10,D9,NC,64); //POTMETERS AnalogIn potleft(A1); AnalogIn potright(A0); DigitalIn button(PTA4); int button_on = 0; void move_mot1(float left) { if(left < 0.400) { float calc1 = left - 1; float calc2 = abs(calc1); float leftin1 = (calc2-0.6)*2.5 ; motor1_aan.write(leftin1); motor1_rich.write(0); } else if(left > 0.4000 && left < 0.6000) { motor1_aan.write(0); } else if(left > 0.6000) { float leftin2 = (left-0.6)*2.5; motor1_aan.write(leftin2); motor1_rich.write(1); } } void move_mot2(float right) { if(right < 0.4000) { float calc3 = right - 1; float calc4 = abs(calc3); float rightin1 = (calc4-0.6)*2.5 ; motor2_aan.write(rightin1); motor2_rich.write(0); } else if(right > 0.4000 && right < 0.6000) { motor2_aan.write(0); } else if(right > 0.6000) { float rightin2 = (right-0.6)*2.5; motor2_aan.write(rightin2); motor2_rich.write(1); } } void send() { int countsl = motor1_enc.getPulses(); int countsr = motor2_enc.getPulses(); pc.printf("motor 1 counts %d motor 2 counts %d \n", countsl, countsr); } int main() { pc.baud(115200); mod.attach(&send,1); while(true) { float left = potleft.read(); float right = potright.read(); // pc.printf("%f \n",left); move_mot1(left); move_mot2(right); //if(button.read() == button_on) //{ // motor1_enc.reset(); // motor2_enc.reset(); //} } }