
motor aansturing moet lineair zijn is het niet
Dependencies: MODSERIAL Encoder mbed HIDScope
main.cpp
- Committer:
- Zeekat
- Date:
- 2015-10-02
- Revision:
- 9:f907915f269c
- Parent:
- 8:83d522d8f2b8
- Child:
- 10:b2742f42de44
File content as of revision 9:f907915f269c:
#include "mbed.h" #include "MODSERIAL.h" #include "encoder.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 Encoder motor1_enc(D12,D11); Encoder motor2_enc(D10,D9); //POTMETERS AnalogIn potleft(A1); AnalogIn potright(A0); DigitalIn button(PTA4); int button_on = 0; void move_mot1(double left) { if(left < 0.400) { double calc1 = left - 1; double calc2 = abs(calc1); double 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) { double leftin2 = (left-0.6)*2.5; motor1_aan.write(leftin2); motor1_rich.write(1); } } void move_mot2(double right) { if(right < 0.4000) { double calc3 = right - 1; double calc4 = abs(calc3); double 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) { double rightin2 = (right-0.6)*2.5; motor2_aan.write(rightin2); motor2_rich.write(1); } } void send() { int counts1 = motor1_enc.getPosition(); int counts2 = motor2_enc.getPosition(); pc.printf("motor 1 counts, %d motor 2 counts %d \n", counts1, counts2); } int main() { pc.baud(115200); mod.attach(&send,1); while(true) { double left = potleft.read(); double right = potright.read(); move_mot1(left); move_mot2(right); if( button.read() == button_on) { motor1_enc.setPosition(0); motor2_enc.setPosition(0); } wait(0.01f); // is noodzakelijk voor functioneren gradual increase, waarom???? } }