a dc_motor drive lib use two PWM IO to drive the dc_motor

Dependents:   Nucleo_F411RE_OS_Robot_Tank

Committer:
adaphoto
Date:
Tue Jun 19 08:50:21 2018 +0000
Revision:
0:cd71771d494f
Child:
1:d31307e787fd
motor driver lib ; use two PWM IO to drive the motor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
adaphoto 0:cd71771d494f 1 #include "mbed.h"
adaphoto 0:cd71771d494f 2 #include "motodriver.h"
adaphoto 0:cd71771d494f 3
adaphoto 0:cd71771d494f 4 Motor::Motor(PinName pwm1pin, PinName pwm2pin) : _pwm1(pwm1pin) , _pwm2(pwm2pin)
adaphoto 0:cd71771d494f 5 {
adaphoto 0:cd71771d494f 6 init();
adaphoto 0:cd71771d494f 7 }
adaphoto 0:cd71771d494f 8
adaphoto 0:cd71771d494f 9 void Motor::init()
adaphoto 0:cd71771d494f 10 {
adaphoto 0:cd71771d494f 11 // Set initial condition of PWM
adaphoto 0:cd71771d494f 12 _pwm1.period(0.001);
adaphoto 0:cd71771d494f 13 _pwm1 = 0;
adaphoto 0:cd71771d494f 14
adaphoto 0:cd71771d494f 15 // Set initial condition of PWM
adaphoto 0:cd71771d494f 16 _pwm2.period(0.001);
adaphoto 0:cd71771d494f 17 _pwm2 = 0;
adaphoto 0:cd71771d494f 18 }
adaphoto 0:cd71771d494f 19
adaphoto 0:cd71771d494f 20 float Motor::Speed(float speed)
adaphoto 0:cd71771d494f 21 {
adaphoto 0:cd71771d494f 22 float temp;
adaphoto 0:cd71771d494f 23 temp = abs(speed);
adaphoto 0:cd71771d494f 24
adaphoto 0:cd71771d494f 25 if (speed > 0.0)
adaphoto 0:cd71771d494f 26 {
adaphoto 0:cd71771d494f 27 _pwm1 = temp;
adaphoto 0:cd71771d494f 28 _pwm2 = 0;
adaphoto 0:cd71771d494f 29 }
adaphoto 0:cd71771d494f 30 else
adaphoto 0:cd71771d494f 31 {
adaphoto 0:cd71771d494f 32 _pwm1 = 0;
adaphoto 0:cd71771d494f 33 _pwm2 = temp;
adaphoto 0:cd71771d494f 34 }
adaphoto 0:cd71771d494f 35
adaphoto 0:cd71771d494f 36 return temp;
adaphoto 0:cd71771d494f 37 }
adaphoto 0:cd71771d494f 38
adaphoto 0:cd71771d494f 39 void Motor::Stop()
adaphoto 0:cd71771d494f 40 {
adaphoto 0:cd71771d494f 41 _pwm1 = 0;
adaphoto 0:cd71771d494f 42 _pwm2 = 0;
adaphoto 0:cd71771d494f 43 }