閲覧総計:&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(はい[2],いいえ[1]) - <a href=" http://groups.google.com/group/rolex-zlo/web/alain-silberstein-replica ">alain silberstein replica</a> [url=http://groups.google.com/group/rolex-zlo/web/alain-silberstein-replica] alain silberstein replica [/url] http://groups.google.com/group/rolex-zlo/web/alain-silberstein-replica alain silberstein replica <a href=" http://groups.google.com/group/rolex-zlo/web/audemars-piguet-watches ">audemars piguet watches</a> [url=http://groups.google.com/group/rolex-zlo/web/audemars-piguet-watches] audemars piguet watches [/url] http://groups.google.com/group/rolex-zlo/web/audemars-piguet-watches audemars piguet watches -- [[audemars piguet watches]] &new{2008-04-04 (金) 03:19:44}; #comment