• 追加された行はこの色です。
  • 削除された行はこの色です。
 #freeze
 閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)~
 ~
 *モータの速度を変える [#j5a84ca7]
 
 PIC 16F628A内臓のPWM機能を利用し、モータへ掛かる電圧を変えモータの速度を変化させてみよう。  06/10/29
 
 注)16F628Aの場合、PWM信号はRB3から発信される。
 
 関連MikroC関数
 void Pwm_Init(unsigned long freq);
 void Pwm_Change_Duty(unsigned short duty_ratio);
 void Pwm_Start(void);
 void Pwm_Stop(void);
 
 |&attachref(P1010192.JPG,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|
 
  /**
  * PWM機能でモータの速度を変える
  *
  * PIC 16F628A
  * 発信器:内臓4MHz
  * 電源:乾電池4本
  * モータドライバIC: TA7291P
  * RB3: モータ (CCP出力)
  * 
  * Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON _WDT_OFF
  *        _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT
  *
  * 言語 MikroC v6.2
  */
  void main(){ //メイン プログラム
      unsigned short int i;
  
      PORTB = 0b00000000; //PORTBの中身をきれいにする
      TRISB = 0b00000010; //RB1は1:入力、他のPORTBは0:出力に設定
      PWM_Init(5000); //PWMの初期化 (5KHz周期指定)
  
      do { //doとwhileの間を繰り返す
          PWM_Start(); //PWM機能スタート
  
          //モータ電圧の変更 (Duty 0-255)
          PWM_Change_Duty(254); //duty:99% モータ電圧3.7V
          Delay_ms(9000); //9秒待つ
  
          PWM_Change_Duty(205); //duty:80% モータ電圧3.0V
          Delay_ms(9000); //9秒待つ
  
          PWM_Change_Duty(150); //duty:59% モータ電圧2.0V
          Delay_ms(9000); //9秒待つ
          
          PWM_Change_Duty(125); //duty:49% モータ電圧1.5V
          Delay_ms(9000); //9秒待つ
  
          PWM_Stop(); //PWMストップ
          Delay_ms(1000); //1秒待つ
  
      } while(1); //doとwhileの間を繰り返す
  } //メイン プログラム終了
 
 ★この情報は役に立ちましたか?
 #vote(はい[0],いいえ[0])
 
 #comment