Control an H-Bridge using a PwmOut (enable) and two DigitalOuts (direction select)
Fork of Motor by
MotorL.h@9:9b00a28bc790, 2015-05-15 (annotated)
- Committer:
- miczyg
- Date:
- Fri May 15 13:44:38 2015 +0000
- Revision:
- 9:9b00a28bc790
jk
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
miczyg | 9:9b00a28bc790 | 1 | #ifndef MBED_MOTORL_H |
miczyg | 9:9b00a28bc790 | 2 | #define MBED_MOTORL_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 MotorL { |
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 | MotorL(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 |