motor aansturing moet lineair zijn is het niet

Dependencies:   MODSERIAL Encoder mbed HIDScope

main.cpp

Committer:
Zeekat
Date:
2015-09-28
Revision:
1:8918d924f625
Parent:
0:5ea1875b307a
Child:
2:bcd68150136c

File content as of revision 1:8918d924f625:

#include "mbed.h"

//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


//POTMETERS
AnalogIn potleft(A1);
AnalogIn potright(A0);

void move_mot1(float left)
{
    if(left < 0.4)
    {
        float leftin = left*2.5 ;
        motor1_aan.write(leftin);
        motor1_rich.write(0);
    }
    else if(left > 0.4 && left < 0.6)
    {
        motor1_aan.write(0);
    }
    else if(left > 0.6)
    {
        float calc = left - 1;
        float calc2 = abs(calc);
        float leftin = calc2*2.5;
        motor1_aan.write(leftin);
        motor1_rich.write(1);
    }
}

void move_mot2(float right)
{
    if(right < 0.4)
    { 
        float rightin = right*2.5;
        motor2_aan.write(rightin);
        motor2_rich.write(0);
    }
    else if(right > 0.4 && right < 0.6)
    {
        motor2_aan.write(0);
    }
    else if(right > 0.6)
    {
        float calc3 = right-1;
        float calc4 = abs(calc3);
        float rightin = calc4*2.5;
        motor2_aan.write(rightin);
        motor2_rich.write(1);
    }
}  



int main()
{

    while(true)
    {
    float left = potleft.read();
    float right = potright.read();
    move_mot1(left);
    move_mot2(right); 
    wait(0.01f);
    }
}