a dc_motor drive lib use two PWM IO to drive the dc_motor
Dependents: Nucleo_F411RE_OS_Robot_Tank
motodriver.cpp@0:cd71771d494f, 2018-06-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |