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 #ifndef MBED_MOTORR_H
miczyg 9:9b00a28bc790 2 #define MBED_MOTORR_H
miczyg 9:9b00a28bc790 3
miczyg 9:9b00a28bc790 4 #include "mbed.h"
miczyg 9:9b00a28bc790 5 //#include "PID.h"
miczyg 9:9b00a28bc790 6
miczyg 9:9b00a28bc790 7 /*nastawy regulatora PID*/
miczyg 9:9b00a28bc790 8 /*
miczyg 9:9b00a28bc790 9 const float K = 1;
miczyg 9:9b00a28bc790 10 const float Ti = 0;
miczyg 9:9b00a28bc790 11 const float Td = 0;
miczyg 9:9b00a28bc790 12 const float itv = 0.001;
miczyg 9:9b00a28bc790 13 #define AUTO 1
miczyg 9:9b00a28bc790 14 */
miczyg 9:9b00a28bc790 15 /** Interface to control a standard DC motor
miczyg 9:9b00a28bc790 16 *
miczyg 9:9b00a28bc790 17 * with an H-bridge using a PwmOut and 2 DigitalOuts
miczyg 9:9b00a28bc790 18 */
miczyg 9:9b00a28bc790 19 class MotorR {
miczyg 9:9b00a28bc790 20 public:
miczyg 9:9b00a28bc790 21
miczyg 9:9b00a28bc790 22 /** Create a motor control interface
miczyg 9:9b00a28bc790 23 *
miczyg 9:9b00a28bc790 24 * @param pwm A PwmOut pin, driving the H-bridge enable line to control the speed
miczyg 9:9b00a28bc790 25 * @param fwd A DigitalOut, set high when the motor should go forward
miczyg 9:9b00a28bc790 26 * @param rev A DigitalOut, set high when the motor should go backwards
miczyg 9:9b00a28bc790 27 */
miczyg 9:9b00a28bc790 28 MotorR(PinName pwm, PinName fwd, PinName rev, PinName stby);
miczyg 9:9b00a28bc790 29
miczyg 9:9b00a28bc790 30 /** Set the speed of the motor
miczyg 9:9b00a28bc790 31 *
miczyg 9:9b00a28bc790 32 * @param speed The speed of the motor as a normalised value between -1.0 and 1.0
miczyg 9:9b00a28bc790 33 */
miczyg 9:9b00a28bc790 34 void speed(float speed);
miczyg 9:9b00a28bc790 35
miczyg 9:9b00a28bc790 36 /**Change the stand by status of H-bridge
miczyg 9:9b00a28bc790 37 *
miczyg 9:9b00a28bc790 38 * @param status 0 - bridge disabled, 1 - bridge enabled
miczyg 9:9b00a28bc790 39 */
miczyg 9:9b00a28bc790 40 void setStandby(bool status)
miczyg 9:9b00a28bc790 41 {
miczyg 9:9b00a28bc790 42 _stdby = status;
miczyg 9:9b00a28bc790 43 }
miczyg 9:9b00a28bc790 44
miczyg 9:9b00a28bc790 45 protected:
miczyg 9:9b00a28bc790 46 PwmOut _pwm;
miczyg 9:9b00a28bc790 47 DigitalOut _fwd;
miczyg 9:9b00a28bc790 48 DigitalOut _rev;
miczyg 9:9b00a28bc790 49 DigitalOut _stdby;
miczyg 9:9b00a28bc790 50 private:
miczyg 9:9b00a28bc790 51 //PID speedControl;
miczyg 9:9b00a28bc790 52 //QEI encoder;
miczyg 9:9b00a28bc790 53 float set_speed;
miczyg 9:9b00a28bc790 54
miczyg 9:9b00a28bc790 55 };
miczyg 9:9b00a28bc790 56
miczyg 9:9b00a28bc790 57 #endif