TB6569 - Toshiba's DC motor driver
TB6569.h
- Committer:
- ykuroda
- Date:
- 2012-12-05
- Revision:
- 0:ae0a960a4a2b
- Child:
- 1:2dc0a85a05b1
File content as of revision 0:ae0a960a4a2b:
// // dataset.h // #ifndef _TB6569_H #define _TB6569_H const float PI = 3.141592; class TB6569 { public: enum Mode { PWM, ROT, SVO, VEL }; enum Standby { SLEEP, WAKEUP }; TB6569( PinName pwm, PinName in1, PinName in2, float pulse_per_rotate=1, float gear_ratio=1, float delta_t = 1); void setParam(float pulse_per_rotate, float gear_ratio, float delta_t); void output(void); void output(short int _power); void output_break(void); void period_us(int usec){ _pwm.period_us(usec);}; void period_ms(int msec){ _pwm.period_ms(msec);}; float getRotSpeed(int _pulse); void setCurrentVelocity(float vel){ _fv = vel; }; void setCurrentPosition(float rad){ _rad = rad; }; void setMode(Mode mode = PWM){ _mode = mode; }; Mode readMode(void){ return _mode; }; public: Mode _mode; PwmOut _pwm; // p21, should be one of the following pins p21-p26 DigitalOut _in1; DigitalOut _in2; float _pulse_per_rotate; // = 12; float _gear_ratio; // = 231.219951923; float _kp; // = 30.0; float _ki; // = 5.0; float _kd; // = 3.0; float _ff; // = 33.0; float _dc; // = 0.95; float _wheel_diameter; // = 0.1016; float _direction; // = -1.0; // float _power; // -100 .. +100 short int _power; float _rs; // rotational speed (measured) float _rs_d; // rotational speed (desired) [rad/s] float _fv; // forward velocity (measured) float _fv_d; // forward velocity (desired) [m/s] float _rad; float _rad_d; float _drs; float _drs_sum; float _dpos; float _dpos_sum; float _current; // motor current [A] int _enc_pulse; // current encoder pulse float _delta_t; // delta t [sec] }; #endif //_TB6569_H