• 追加された行はこの色です。
  • 削除された行はこの色です。
閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)~
 ~
 *モータを回してみよう [#pf56cde9]
 *モータの前転・後転 [#pf56cde9]
 
 PICとモータドライバICを用いて模型用小型モータを回してみよう。  06/05/20
 モータの前転・後転・停止・ブレーキの制御をモータドライバIC 東芝TA7291Pを用い
 て行う方法を示す。  06/09/18
 
 モータドライバICは東芝TA7291P @170円(千石電商)を用いた。
  ・IC仕様書(16ページ)は[[こちら:http://www.semicon.toshiba.co.jp/td/ja/Linear_ICs/Motor_Driver_ICs/20060307_TA7291P_datasheet.pdf#search='TA7291P']]    通販ページは[[こちら:http://www.sengoku.co.jp/CategoryIndex/Frame-SS.htm]]
 モータはマブチ模型用小型モータ(写真は手持ちのRE-280(1.5V-3.0V))
  ・モータ仕様書(1ページ)は[[こちら:http://www.mabuchi-motor.co.jp/ja_JP/cat_files/re_280rasa.pdf]]
 モータドライバ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:出力に設定 
  
    PORTB.F4 = 1; //RB4をON(モーター回転) 
      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の間を繰り返す   
  } //メイン プログラム終了
 
 #comment
 
 【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個全て出力に設定 
    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ミリ秒)待つ
  
    PORTB.F4 = 1; //RB4をON(モーター回転) 
  
      } while(1); //doとwhileの間を繰り返す
  } //メイン プログラム終了
 
 
 #comment