DC motor control program using TA7291P type H bridge driver and rotary encoder with A, B phase.
Dependencies: QEI mbed-rtos mbed
Fork of DCmotor by
Diff: Hbridge.h
- Revision:
- 13:ba71733c11d7
- Parent:
- 12:459af534d1ee
- Child:
- 14:02411880ffb9
diff -r 459af534d1ee -r ba71733c11d7 Hbridge.h --- a/Hbridge.h Fri Jan 04 12:00:48 2013 +0000 +++ b/Hbridge.h Fri Mar 01 02:10:59 2013 +0000 @@ -1,25 +1,28 @@ #ifndef __Hbridge_h #define __Hbridge_h -//************* User setting parameters (begin) ***************** -//#define PWM_FREQ 0.5 //[Hz], pwm freq. -//#define DEADTIME 0.2 // [s], deadtime to be set between plus volt. to/from minus -#define UPPER_PORT p21//LED1 // port for U phase upper arm -#define LOWER_PORT p22 // port for U phase lower arm -#define PWM_WAVEFORM 0 // 0: saw tooth wave comparison, 1: triangler wave comparison -#define TMIN 5 // [us], processing time of pwm_out() -//************* User setting parameters (end) ***************** +//************* 使用するポートなどの設定 (ここから) ***************** +#define PWM_FREQ 20000.0 // [Hz], PWMチョッピング周波数 pwm freq. (> 1/(DEAD_TIME*10)) +#define DEADTIME 0.0001 // [s], デッドタイム(モータに加える電圧の正負が変わるときに上下アーム短絡を避けるために同時オフする時間) // [s], deadtime to be set between plus volt. to/from minus +#define fwdIN_PORT p21 //LED1 // ポート:fwdIN port for U phase fwdIN arm +#define rvsIN_PORT p22 // ポート:rvsIN port for U phase rvsIN arm +#define PWM_WAVEFORM 0 // PWM変調方式 0: ノコギリ波比較, 1: 三角波比較 saw tooth wave comparison, 1: triangler wave comparison +#define TMIN 5 // [us], pwm_out()の演算時間 processing time of pwm_out() +#define R_SHUNT_P_PORT p19 // ポート:電流検出用シャント抵抗のプラス側アナログ入力 +#define R_SHUNT_M_PORT p20 // ポート:電流検出用シャント抵抗のマイナス側アナログ入力 +#define R_SHUNT 0.47 // [Ω], 電流検出用シャント抵抗値 shunt resistanse +//************* 使用するポートなどの設定 (ここまで) ***************** -typedef struct struct_pwm_parameters{ // parameters of H bridge pwm - float duty; // 0-1, duty of H bridge - unsigned char mode; // mode - long upper_us; // [us], time - long lower_us; // [us], time - unsigned char fReverse[2]; // reverse direction? - unsigned char fDeadtime; // set deadtime? (v is plus to/from minus?) +typedef struct struct_pwm_parameters{ // フルブリッジのパラメータ宣言 parameters of H bridge pwm + float duty; // 0-1, PWMデューティ duty of H bridge + unsigned char mode; // チョッピングのオンオフを決定するモード + long fwdIN_us; // [us], fwdINをオンする時間幅 + long rvsIN_us; // [us], rvsINをオンする時間幅 + unsigned char fReverse; // モータ逆回転フラグ:回転方向が順方向のとき0、逆方向のとき1。[0]が現在の値、[1]はその前の値 reverse direction? + unsigned char fDeadtime; // 正負切替時にデッドタイムを要求するフラグ set deadtime? (v is plus to/from minus?) }pwm_parameters; -extern pwm_parameters IN; // H bridge pwm の定数、変数 +extern pwm_parameters IN; // フルブリッジのパラメータ宣言 -extern void start_pwm(); -extern void stop_pwm(); +extern void start_pwm(); // PWMスタートする関数を宣言 +extern void stop_pwm(); // PWMストップする関数を宣言 #endif \ No newline at end of file