Simple Interface for Toshiba's TB6612FNG H-Bridge Motor Driver
Diff: TB6612FNG.cpp
- Revision:
- 0:30d6828516f5
- Child:
- 1:3dd9137a5cec
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TB6612FNG.cpp Mon Mar 04 21:58:45 2013 +0000 @@ -0,0 +1,57 @@ +/** + * H-Bridge / Motor Driver TB6612FNG Control Library + */ + + +#include "TB6612FNG.h" + + +TB6612FNG::TB6612FNG(PinName pwm, PinName ctrl1, PinName ctrl2) + :m_pwm(pwm), m_ctrl1(ctrl1), m_ctrl2(ctrl2), m_dc(0), m_on(false) +{ + m_ctrl1 = 0; + m_ctrl2 = 0; + m_pwm.period_us(1000); + m_pwm.pulsewidth_us(0); +} + +void TB6612FNG::setDC(int dc) +{ + m_dc=dc; + if(m_dc>1000) m_dc=1000; + else if(m_dc<-1000) m_dc=-1000; + + if(m_on)on(); +} + +void TB6612FNG::on() +{ + m_on=true; + if(m_dc>0) { + m_ctrl1=1; + m_ctrl2=0; + m_pwm.pulsewidth_us(m_dc); + } else if(m_dc<0) { + m_ctrl1=0; + m_ctrl2=1; + m_pwm.pulsewidth_us(-m_dc); + } else { + m_ctrl1=0; + m_ctrl2=0; + } + +} + +void TB6612FNG::off() +{ + m_on=false; + m_ctrl1=0; + m_ctrl2=0; +} + +void TB6612FNG::brake() +{ + m_on=false; + m_ctrl1=1; + m_ctrl2=1; +} \ No newline at end of file