Control an H-Bridge using a PwmOut (enable) and two DigitalOuts (direction select)

Fork of Motor by Simon Ford

Committer:
miczyg
Date:
Fri May 15 13:44:38 2015 +0000
Revision:
9:9b00a28bc790
jk

Who changed what in which revision?

UserRevisionLine numberNew contents of line
miczyg 9:9b00a28bc790 1 #include "MotorR.h"
miczyg 9:9b00a28bc790 2 #include "mbed.h"
miczyg 9:9b00a28bc790 3
miczyg 9:9b00a28bc790 4 MotorR::MotorR(PinName pwm, PinName fwd, PinName rev, PinName stby) :
miczyg 9:9b00a28bc790 5 _pwm(pwm), _fwd(fwd), _rev(rev), _stdby(stby)//, speedControl(K, Ti, Td, itv)//, encoder(CH_A, CH_B, NC, pPerRev)
miczyg 9:9b00a28bc790 6 {
miczyg 9:9b00a28bc790 7
miczyg 9:9b00a28bc790 8 // Set initial condition of PWM
miczyg 9:9b00a28bc790 9 _pwm.period(0.001);
miczyg 9:9b00a28bc790 10 _pwm = 0;
miczyg 9:9b00a28bc790 11 _stdby = 1;
miczyg 9:9b00a28bc790 12 // Initial condition of output enables
miczyg 9:9b00a28bc790 13 _fwd = 0;
miczyg 9:9b00a28bc790 14 _rev = 0;
miczyg 9:9b00a28bc790 15
miczyg 9:9b00a28bc790 16 //PID config
miczyg 9:9b00a28bc790 17 //speedControl.setInputLimits(0, 1);
miczyg 9:9b00a28bc790 18 //speedControl.setOutputLimits(0, 1);
miczyg 9:9b00a28bc790 19 //speedControl.setMode(AUTO);
miczyg 9:9b00a28bc790 20
miczyg 9:9b00a28bc790 21 }
miczyg 9:9b00a28bc790 22
miczyg 9:9b00a28bc790 23 void MotorR::speed(float speed) {
miczyg 9:9b00a28bc790 24
miczyg 9:9b00a28bc790 25 /*PID do enkoderow i utrzymywania stalej predkosci*/
miczyg 9:9b00a28bc790 26 /*
miczyg 9:9b00a28bc790 27 if (speed != set_speed){
miczyg 9:9b00a28bc790 28 speedControl.setSetPoint(speed);
miczyg 9:9b00a28bc790 29 set_speed = speed;
miczyg 9:9b00a28bc790 30 }
miczyg 9:9b00a28bc790 31
miczyg 9:9b00a28bc790 32 pulses = encoder.getPulses();
miczyg 9:9b00a28bc790 33 curr_speed = (pulses-prev_pulses) / max_pulse_rate;
miczyg 9:9b00a28bc790 34 prev_pulses = pulses;
miczyg 9:9b00a28bc790 35
miczyg 9:9b00a28bc790 36 speedControl.setProcessValue(curr_speed);
miczyg 9:9b00a28bc790 37 speed = speedControl.compute();
miczyg 9:9b00a28bc790 38 */
miczyg 9:9b00a28bc790 39
miczyg 9:9b00a28bc790 40 _fwd = (speed > 0.0);
miczyg 9:9b00a28bc790 41 _rev = (speed < 0.0);
miczyg 9:9b00a28bc790 42 _pwm = abs(speed);
miczyg 9:9b00a28bc790 43 }