Library for Pololu Motor driver - VNH5019 Motor Driver Carrier https://www.pololu.com/product/1451

Dependents:   VNH5019_2 VNH5019_1

Committer:
TeaPack_CZ
Date:
Sat Feb 25 21:54:26 2017 +0000
Revision:
0:c54243e9db1d
Child:
1:c1767d70d47e
Initial commit of library for motor driver VNH5019

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TeaPack_CZ 0:c54243e9db1d 1 /** Class for the Pololu motor driver (VNH5019)
TeaPack_CZ 0:c54243e9db1d 2 * ANOTATION TODO ... \n\n
TeaPack_CZ 0:c54243e9db1d 3 * https://www.pololu.com/product/1451\n\n
TeaPack_CZ 0:c54243e9db1d 4 *
TeaPack_CZ 0:c54243e9db1d 5 * Writen by: Jan Crha (TeaPack_CZ), 2017.
TeaPack_CZ 0:c54243e9db1d 6 *
TeaPack_CZ 0:c54243e9db1d 7 * Last modified: 2017-02-25
TeaPack_CZ 0:c54243e9db1d 8 *
TeaPack_CZ 0:c54243e9db1d 9 * Example (LPC1768):
TeaPack_CZ 0:c54243e9db1d 10 * @code
TeaPack_CZ 0:c54243e9db1d 11 * #include "mbed.h"
TeaPack_CZ 0:c54243e9db1d 12 * #include "MotorDriver.h"
TeaPack_CZ 0:c54243e9db1d 13 * #include "math.h"
TeaPack_CZ 0:c54243e9db1d 14 *
TeaPack_CZ 0:c54243e9db1d 15 * Serial PC(USBTX,USBRX);
TeaPack_CZ 0:c54243e9db1d 16 *
TeaPack_CZ 0:c54243e9db1d 17 * MotorDriver Motor(p20,p21,p22);
TeaPack_CZ 0:c54243e9db1d 18 * AnalogIn senseB(p19);
TeaPack_CZ 0:c54243e9db1d 19 *
TeaPack_CZ 0:c54243e9db1d 20 * int main(){
TeaPack_CZ 0:c54243e9db1d 21 *
TeaPack_CZ 0:c54243e9db1d 22 * PC.baud(115200);
TeaPack_CZ 0:c54243e9db1d 23 * Motor.setEnabled(true);
TeaPack_CZ 0:c54243e9db1d 24 * int i = 0;
TeaPack_CZ 0:c54243e9db1d 25 *
TeaPack_CZ 0:c54243e9db1d 26 * while(1)
TeaPack_CZ 0:c54243e9db1d 27 * {
TeaPack_CZ 0:c54243e9db1d 28 * Motor.setSpeed(sin(i/180.0*3.1415));
TeaPack_CZ 0:c54243e9db1d 29 * PC.printf("%.3f",senseB.read());
TeaPack_CZ 0:c54243e9db1d 30 * wait(0.1);
TeaPack_CZ 0:c54243e9db1d 31 * }
TeaPack_CZ 0:c54243e9db1d 32 * }
TeaPack_CZ 0:c54243e9db1d 33 * @endcode
TeaPack_CZ 0:c54243e9db1d 34 */
TeaPack_CZ 0:c54243e9db1d 35
TeaPack_CZ 0:c54243e9db1d 36 #include "mbed.h"
TeaPack_CZ 0:c54243e9db1d 37
TeaPack_CZ 0:c54243e9db1d 38 class MotorDriver{
TeaPack_CZ 0:c54243e9db1d 39
TeaPack_CZ 0:c54243e9db1d 40 public:
TeaPack_CZ 0:c54243e9db1d 41
TeaPack_CZ 0:c54243e9db1d 42 /** Class contructor.
TeaPack_CZ 0:c54243e9db1d 43 \param PWM output connected to PWM pin on Pololu driver
TeaPack_CZ 0:c54243e9db1d 44 \param DirA connect to pin INA
TeaPack_CZ 0:c54243e9db1d 45 \param DirB connect to pin INB
TeaPack_CZ 0:c54243e9db1d 46 */
TeaPack_CZ 0:c54243e9db1d 47 MotorDriver(PinName Pwm, PinName DirA, PinName DirB);
TeaPack_CZ 0:c54243e9db1d 48
TeaPack_CZ 0:c54243e9db1d 49 /** Procedure for enabling/disabling motor driver
TeaPack_CZ 0:c54243e9db1d 50 */
TeaPack_CZ 0:c54243e9db1d 51 void setEnabled(bool);
TeaPack_CZ 0:c54243e9db1d 52
TeaPack_CZ 0:c54243e9db1d 53 /** Functon returning actual state of motor driver
TeaPack_CZ 0:c54243e9db1d 54 @returns True/False - state of motor driver
TeaPack_CZ 0:c54243e9db1d 55 */
TeaPack_CZ 0:c54243e9db1d 56 bool isEnabled();
TeaPack_CZ 0:c54243e9db1d 57
TeaPack_CZ 0:c54243e9db1d 58 /** Procedure for stopping movement of motor
TeaPack_CZ 0:c54243e9db1d 59 */
TeaPack_CZ 0:c54243e9db1d 60 void stop();
TeaPack_CZ 0:c54243e9db1d 61
TeaPack_CZ 0:c54243e9db1d 62 /** Procedure for stopping motor with active break
TeaPack_CZ 0:c54243e9db1d 63 */
TeaPack_CZ 0:c54243e9db1d 64 void hold();
TeaPack_CZ 0:c54243e9db1d 65
TeaPack_CZ 0:c54243e9db1d 66 /** Procedure for setting direction and power
TeaPack_CZ 0:c54243e9db1d 67 \param direction
TeaPack_CZ 0:c54243e9db1d 68 \param power integer < 0 ; 100 >
TeaPack_CZ 0:c54243e9db1d 69 */
TeaPack_CZ 0:c54243e9db1d 70 void setSpeed(bool, int);
TeaPack_CZ 0:c54243e9db1d 71
TeaPack_CZ 0:c54243e9db1d 72 /** Procedure for setting power and direction via float
TeaPack_CZ 0:c54243e9db1d 73 \param power_f float < -1 ; +1 >
TeaPack_CZ 0:c54243e9db1d 74 */
TeaPack_CZ 0:c54243e9db1d 75 void setSpeed(float);
TeaPack_CZ 0:c54243e9db1d 76
TeaPack_CZ 0:c54243e9db1d 77 private:
TeaPack_CZ 0:c54243e9db1d 78 PwmOut _pwm;
TeaPack_CZ 0:c54243e9db1d 79 DigitalOut _dirA;
TeaPack_CZ 0:c54243e9db1d 80 DigitalOut _dirB;
TeaPack_CZ 0:c54243e9db1d 81
TeaPack_CZ 0:c54243e9db1d 82 bool enabled;
TeaPack_CZ 0:c54243e9db1d 83 };