#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(はい[23],普通[13],いいえ[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],普通[1],いいえ[0])

#comment_nospam