Simple Interface for Toshiba's TB6612FNG H-Bridge Motor Driver

TB6612FNG.h

Committer:
humlet
Date:
2013-03-06
Revision:
1:3dd9137a5cec
Parent:
0:30d6828516f5
Child:
2:73d5d7514e4c

File content as of revision 1:3dd9137a5cec:

/**
 * H-Bridge / Motor Driver TB6612FNG Control Library
 */

#ifndef TB6612FNG_H
#define TB6612FNG_H

#include "mbed.h"

class TB6612FNG
{
    PwmOut m_pwm;
    DigitalOut m_ctrl1;
    DigitalOut m_ctrl2;
    int m_pw;
    bool m_on;
    bool m_brakeOnZeroDC;
    int m_period;

public:
    /** Create TB6612FNG object connected to the specified mbed pins
    * @param pwm PwmOut pin
    * @param ctrl1/ctrl2 DigitalOut control pin
    * @param pwmPeriod is the PWM period setting in µs
    * @param brakeOnZeroDC if true the motor brakes on zero pulse width setting
    */
    TB6612FNG(PinName pwm, PinName ctrl1, PinName ctrl2, int pwmPeriod=1000, bool brakeOnZeroDC=true);
    /// Set the duty cycle
    /// @param pw is the PWM pulse width setting in µs
    void setPulseWidth(int pw);
    /// activates the motor at duty cycle adjusted with setPulseWidth
    void on();
    /// deactivates the motor (sets the motor output to high impedance, no short brake)
    void off();
    /// brakes the motor by shorting it 
    void brake();
    /// pulse width assignment
    /// @param pw is the PWM pulse width setting in µs
    void operator=(int pw) {
        setPulseWidth(pw);
    }
};

#endif