DC motor control program using TA7291P type H bridge driver and rotary encoder with A, B phase.
Fork of DCmotor2 by
Hbridge.h@22:4fd506b1c68d, 2016-06-10 (annotated)
- Committer:
- kosakaLab
- Date:
- Fri Jun 10 04:29:13 2016 +0000
- Revision:
- 22:4fd506b1c68d
- Parent:
- 15:29797f995594
nothing is changed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kosaka | 12:459af534d1ee | 1 | #ifndef __Hbridge_h |
kosaka | 12:459af534d1ee | 2 | #define __Hbridge_h |
kosaka | 12:459af534d1ee | 3 | |
kosaka | 13:ba71733c11d7 | 4 | //************* 使用するポートなどの設定 (ここから) ***************** |
kosakaLab | 15:29797f995594 | 5 | #define PWM_FREQ 10000.0 // [Hz], PWMチョッピング周波数 pwm freq. (> 1/(DEAD_TIME*10)) |
kosaka | 13:ba71733c11d7 | 6 | #define DEADTIME 0.0001 // [s], デッドタイム(モータに加える電圧の正負が変わるときに上下アーム短絡を避けるために同時オフする時間) // [s], deadtime to be set between plus volt. to/from minus |
kosaka | 13:ba71733c11d7 | 7 | #define fwdIN_PORT p21 //LED1 // ポート:fwdIN port for U phase fwdIN arm |
kosaka | 13:ba71733c11d7 | 8 | #define rvsIN_PORT p22 // ポート:rvsIN port for U phase rvsIN arm |
kosaka | 13:ba71733c11d7 | 9 | #define PWM_WAVEFORM 0 // PWM変調方式 0: ノコギリ波比較, 1: 三角波比較 saw tooth wave comparison, 1: triangler wave comparison |
kosaka | 13:ba71733c11d7 | 10 | #define TMIN 5 // [us], pwm_out()の演算時間 processing time of pwm_out() |
kosaka | 13:ba71733c11d7 | 11 | #define R_SHUNT_P_PORT p19 // ポート:電流検出用シャント抵抗のプラス側アナログ入力 |
kosaka | 13:ba71733c11d7 | 12 | #define R_SHUNT_M_PORT p20 // ポート:電流検出用シャント抵抗のマイナス側アナログ入力 |
kosaka | 13:ba71733c11d7 | 13 | #define R_SHUNT 0.47 // [Ω], 電流検出用シャント抵抗値 shunt resistanse |
kosaka | 13:ba71733c11d7 | 14 | //************* 使用するポートなどの設定 (ここまで) ***************** |
kosaka | 12:459af534d1ee | 15 | |
kosaka | 13:ba71733c11d7 | 16 | typedef struct struct_pwm_parameters{ // フルブリッジのパラメータ宣言 parameters of H bridge pwm |
kosaka | 13:ba71733c11d7 | 17 | float duty; // 0-1, PWMデューティ duty of H bridge |
kosaka | 13:ba71733c11d7 | 18 | unsigned char mode; // チョッピングのオンオフを決定するモード |
kosaka | 13:ba71733c11d7 | 19 | long fwdIN_us; // [us], fwdINをオンする時間幅 |
kosaka | 13:ba71733c11d7 | 20 | long rvsIN_us; // [us], rvsINをオンする時間幅 |
kosaka | 13:ba71733c11d7 | 21 | unsigned char fReverse; // モータ逆回転フラグ:回転方向が順方向のとき0、逆方向のとき1。[0]が現在の値、[1]はその前の値 reverse direction? |
kosaka | 13:ba71733c11d7 | 22 | unsigned char fDeadtime; // 正負切替時にデッドタイムを要求するフラグ set deadtime? (v is plus to/from minus?) |
kosaka | 12:459af534d1ee | 23 | }pwm_parameters; |
kosaka | 13:ba71733c11d7 | 24 | extern pwm_parameters IN; // フルブリッジのパラメータ宣言 |
kosaka | 12:459af534d1ee | 25 | |
kosaka | 13:ba71733c11d7 | 26 | extern void start_pwm(); // PWMスタートする関数を宣言 |
kosaka | 13:ba71733c11d7 | 27 | extern void stop_pwm(); // PWMストップする関数を宣言 |
kosaka | 12:459af534d1ee | 28 | #endif |