Simple Interface for Toshiba's TB6612FNG H-Bridge Motor Driver
TB6612FNG.h
- Committer:
- humlet
- Date:
- 2013-03-14
- Revision:
- 4:5aec3b59fc10
- Parent:
- 3:1ae4f0bb91c6
- Child:
- 5:535c74e61e36
File content as of revision 4:5aec3b59fc10:
#ifndef TB6612FNG_H #define TB6612FNG_H #include "mbed.h" /// Simple Interface for Toshiba's TB6612FNG H-Bridge Motor Driver 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 name * @param ctrl1/ctrl2 DigitalOut control pin name * @param pwmPeriod sets the PWM period (µs) * @param brakeOnZeroDC true: The motor brakes on zero pulse width setting. * false: The motor output is set to high impedance */ TB6612FNG(PinName pwm, PinName ctrl1, PinName ctrl2, int pwmPeriod=100, bool brakeOnZeroDC=true); /// Sets the PWM pulse width /// @param pw is the PWM pulse width setting in µs. With the default PWM period of 100µs (f=10kHz) this value is equivalent to the duty cycle. void setPulseWidth(int pw); /// activates the motor at the duty cycle selected 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