#freeze 閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);)~ ~ *モータの前転・後転 [#pf56cde9] モータの前転・後転・停止・ブレーキの制御をモータドライバIC 東芝TA7291Pを用い て行う方法を示す。 06/09/18 モータドライバIC 東芝TA7291PのIN1,IN2端子に下表の信号を入力する事で 0UT1,OUT2につないだモータを制御する事が出来る。 |IN1|IN2|動作| |1|0|前転| |0|1|後転| |0|0|停止| |1|1|ブレーキ| 【16F628Aの場合】 |&attachref(PIC_motor.jpg,zoom,150x150,button){新しい写真添付};|&attachref(PIC_motor_kairo.jpg,zoom,150x150,button){新しい写真添付};| /** * モータの前転・後転 * * PIC 16F628A * 発信器:内臓4MHz * 電源:乾電池4本(実測5.4V) * モータードライバIC:TA7291P * モーター:RB4,5 * * Device Flags: _BODEN_OFF _CP_OFF _DATA_CP_OFF _PWRTE_ON * _WDT_OFF _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT * * 言語 MikroC v2.1 */ void main() { //メイン プログラム PORTB = 0b00000000; //PORTBの中身をきれいにする TRISB = 0b00000010; //RB1は1:入力、他のPORTBは0:出力に設定 do { //doとwhileの間を繰り返す PORTB.F4 = 1; //モータ前転 PORTB.F5 = 0; Delay_ms(1000); //1秒(=1000ミリ秒)待つ PORTB.F4 = 0; //モータ停止 PORTB.F5 = 0; Delay_ms(1000); //1秒(=1000ミリ秒)待つ PORTB.F4 = 0; //モータ後転 PORTB.F5 = 1; Delay_ms(1000); //1秒(=1000ミリ秒)待つ PORTB.F4 = 0; //モータ停止 PORTB.F5 = 0; Delay_ms(1000); //1秒(=1000ミリ秒)待つ } while(1); //doとwhileの間を繰り返す } //メイン プログラム終了 ★この情報は役に立ちましたか? #vote(はい[21],普通[6],いいえ[6]) #comment_nospam 【16F84Aの場合】 /** * モーターを回す * * PIC 16F84A * 外部セラロック:10MHz * 電源:乾電池4本(実測5.4V) * モータードライバIC:TA7291P * モーター:RB4,5 * * Device Flags: _CP_OFF _PWRTE_ON _WDT_OFF _HS_OSC * * 言語 MikroC v2.1 */ void main() { //メイン プログラム PORTB = 0b00000000; //PORTBの中身をきれいにする TRISB = 0b00000000; //PORTBは8個全て出力に設定 do { //doとwhileの間を繰り返す PORTB.F4 = 1; //モータ前転 PORTB.F5 = 0; Delay_ms(1000); //1秒(=1000ミリ秒)待つ PORTB.F4 = 0; //モータ停止 PORTB.F5 = 0; Delay_ms(1000); //1秒(=1000ミリ秒)待つ PORTB.F4 = 0; //モータ後転 PORTB.F5 = 1; Delay_ms(1000); //1秒(=1000ミリ秒)待つ PORTB.F4 = 0; //モータ停止 PORTB.F5 = 0; Delay_ms(1000); //1秒(=1000ミリ秒)待つ } while(1); //doとwhileの間を繰り返す } //メイン プログラム終了 ★この情報は役に立ちましたか? #vote(はい[4],普通[0],いいえ[0]) #comment_nospam