Translate

2009年10月31日土曜日

関数(4)PIC16F84AでPWM制御

[実験 MikroC Pro PIC16F84A_LED_0022]


前回の実験のLEDを点滅するプログラムで 点灯する時間と消灯する時間が、
チカチカではなく滑らかに薄暗くなるプログラムを考えなさい。


( 例 1)





MikroC PROの関数
Delay_ms( )
Delay_us( )
Vdelay_ms( )
を使えないのでwhile(ms1--), while(ms2--)で時間稼ぎしています。

ミリ秒の単位では、どうしてもチカチカしてしまいます。
Delay_us( )
で、プログラミング出来ないことは、ありませんが
引数が、扱えないので例のように短く出来ないと思います。




( 例 2)




while(ms1--), while(ms2--)の代わりに
Delay( )関数を作ってみました。

PWM(Pulse Width Modulation)制御は、パルス幅変調とも呼ばれています。
PIC16F84AはCCP(Compare/Capture/PWM)機能のPINがありませんが、
プログラムでPWM制御は可能です。


ということは
PIC16F84AでPWM方式を使えば、DCモータで回転数制御も出来ますね。

回路としては、
PICとDCモータの間にトランジスタ、MOSFETなど入れれば動きます。


if文でも考えて下さい。
少しプログラムが長くなるだけで、難しくはありません。







mikroC PRO for PIC

0 件のコメント:

コメントを投稿