ライントレーサー制御用のプログラムです.

Dependencies:   mbed

motor.cpp

Committer:
Hirotomo777
Date:
2017-11-16
Revision:
0:e9af471e2a2b

File content as of revision 0:e9af471e2a2b:


#include "motor.h"
BusOut leftc(PTA1,PTA2);
PwmOut leftp(PTD4);

BusOut rightc(PTC0,PTC7);
PwmOut rightp(PTA12);

PwmOut handle(PTC9);

//start code for servo
void servoInit(){
    handle.period(0.020);
    handle.pulsewidth(0.00155);
    wait(0.5);
}


void rotate(PwmOut servo,float ppulse,float *npulse){
    if(ppulse > *npulse){
        if(ppulse > 0.002){
            ppulse = 0.002;
        }
        servo.pulsewidth(ppulse); // servo position determined by a pulsewidth between 1-2ms
        wait(1000.0 * 0.06 * ((ppulse - (*npulse)) / 0.1));
    }
    else {
        if(ppulse < 0.0011){
            ppulse = 0.0011;
        }
        servo.pulsewidth(ppulse); // servo position determined by a pulsewidth between 1-2ms
        wait(1000.0 * 0.06 * (((*npulse) - ppulse) / 0.1));
    }
    *npulse = ppulse;
}

/*
float rotate(PwmOut servo,float ppulse){
    static float npulse = 0.00155;
    if(ppulse > npulse){
        if(ppulse > 0.002){
            ppulse = 0.002;
        }
        servo.pulsewidth(ppulse); // servo position determined by a pulsewidth between 1-2ms
        wait(1000.0 * 0.06 * ((ppulse - (npulse)) / 0.1));
    }
    else {
        if(ppulse < 0.0011){
            ppulse = 0.0011;
        }
        servo.pulsewidth(ppulse); // servo position determined by a pulsewidth between 1-2ms
        wait(1000.0 * 0.06 * (((npulse) - ppulse) / 0.1));
    }
    npulse = ppulse;
    return npulse;
}
*/
//end

//start code for DCmotor
void motorInit(){
    leftc = 0;
    leftp = 1.0f;
    rightc = 0;
    rightp = 1.0f;
}

void start(){
    leftc = 1;
    rightc = 1;
}

void stop(){
    leftc = 0;
    rightc = 0;
}
//end