Mbed library to control a motor via DRV8833 H-bridge motor controller. Uses two Pwmouts.

Dependents:   GGHandController

Revision:
0:80e26be59f41
Child:
1:048f85990e31
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DRV8833.h	Tue Oct 15 12:25:34 2013 +0000
@@ -0,0 +1,67 @@
+/* mbed simple DRV8833 H-bridge motor controller
+ * 
+ *
+ * PWM a un puente en H(DRV8833) conectado a los motores.
+ * El comportamiento del driver es el siguiente
+ *  
+ *          x_PWM1 x_PWM2    Mode
+ *            0      0       Coast/Fast decay
+ *            0      1       Reverse
+ *            1      0       Forward
+ *            1      1       Brake/slow decay
+ *15/10/2013
+*/
+
+#ifndef MBED_DRV8833
+#define MBED_DRV8833
+
+#include "mbed.h"
+
+#define BRAKE_FAST 1
+#define BRAKE_SLOW  0
+
+/** Interface to control a standard DC motor 
+ *  with an DRV8833 H-bridge motor controller
+ *  using 2 PwmOuts 
+ */
+class DRV8833 {
+public:
+
+    /** Create a DRV8833 control interface    
+     *
+     * @param pwm1 A PwmOut pin, Logic input controls state of AOUT1 
+     * @param pwm2 A PwmOut pin, Logic input controls state of AOUT2
+     * 
+     */
+    DRV8833(PinName pwm1, PinName pwm2);
+    
+    /** Set the speed of the motor
+     * 
+     * @param speed The speed of the motor as a normalised value between -1.0 and 1.0
+     */
+    void speed(float speed);
+    
+    /** Set the period of the pwm duty cycle.
+     *
+     * Wrapper for PwmOut::period()
+     *
+     * @param seconds - Pwm duty cycle in seconds.
+     */
+    void period(float period);
+    
+    /** Brake the H-bridge to fast or slow.
+     * 
+     * Defaults to breaking fast.
+     *
+     * Brake fast(coast) => pwm1 = pwm2 = 0
+     * Brake slow        => pwm1 = pwm2 = 1
+     */
+    void brake(int highLow = BRAKE_FAST);
+
+protected:
+    PwmOut _pwm1;
+    PwmOut _pwm2;
+    
+};
+
+#endif