[実験 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
Translate
2009年10月31日土曜日
2009年10月29日木曜日
関数(3)PWM制御の考え方(2)
[実験 MikroC Pro PIC16F84A_LED_0021]
前回の実験のLEDを点滅するプログラムで徐々に点灯する時間と
消灯する時間が、変化するプログラムを関数を使って考えなさい。
(例 1)
duty比が、変化しているようなプログラムです。
Delay_us()
で、プログラムを書き直せば、PWM(Pulse Width Modulation)制御と同じですね。
だだ、mikroC PROには、Vdelay_us( )関数はありませんので
それに換わるプログラムを考えなければ出来ません。
ビデオの画像よりPIC16F84Aは、正確に点滅が変化しています。
撮影しているカメラが、点滅の変化に対応できないようです。
(例 2)
mikroC PRO for PIC
2009年10月28日水曜日
関数(2)PWM制御の考え方(1)
[実験 MikroC Pro PIC16F84A_LED_0020]
下記のプログラムで無限ループのLEDが点滅する部分を関数を作ってプログラミングし直しさい。
(例)
P1(50,200)
P1(点灯時間,消灯時間)
関数を使うことによりスッキリしたプログラムになりました。
前回までのプログラムは、「点灯(ON)時間=消灯(OFF)時間」でしたが
今回のプログラムは、「点灯(ON)時間 ≠ 消灯(OFF)時間 」ですね。
このONとOFFを少しずつ速く繰り返すとどうなるでしょうか?
P1(1,200),P1(5,200)....P1(200,5),P1(200,1)
数字をいろいろ変えてみて下さい。
どのくらいでLEDが点灯しなくなりますか?
また、どのくらいでLEDが消灯しなくまりますか?
mikroC PRO for PIC
下記のプログラムで無限ループのLEDが点滅する部分を関数を作ってプログラミングし直しさい。
(例)
P1(50,200)
P1(点灯時間,消灯時間)
関数を使うことによりスッキリしたプログラムになりました。
前回までのプログラムは、「点灯(ON)時間=消灯(OFF)時間」でしたが
今回のプログラムは、「点灯(ON)時間 ≠ 消灯(OFF)時間 」ですね。
このONとOFFを少しずつ速く繰り返すとどうなるでしょうか?
P1(1,200),P1(5,200)....P1(200,5),P1(200,1)
数字をいろいろ変えてみて下さい。
どのくらいでLEDが点灯しなくなりますか?
また、どのくらいでLEDが消灯しなくまりますか?
mikroC PRO for PIC
2009年10月27日火曜日
関数(1) Vdelay_ms( )関数
[実験 MikroC Pro PIC16F84A_LED_0019]
LEDを点滅する下記のプログラムのDelay_ms(100)を
wait( )関数を作ってプログラムを書き換えなさい。
(例 1)
LEDを点滅する下記のプログラムのDelay_ms(100)を
wait( )関数を作ってプログラムを書き換えなさい。
(例 1)
(例 2)
Deley_ms( )
の( )の中はunsigned long しか入れることは出来ません。
0 .. 4294967295の整数以外入れてはいけません。
つまり、変数(引数)を定義しては、いけないのです。
mikroCでは、変数(引数)を入れても良い、関数が用意されています。
void Vdelay_ms(unsigned time_in_ms);
(例 3)
2009年10月26日月曜日
バーサライタを作ってみました
2009年10月23日金曜日
mikroC Pro for PIC (3.20) のInstall と設定
mikroC PRO for PIC 2009 [17.7MB](current build 3.20)をInstall します。
mikroC PRO for PICは、mikroElektronika社のCコンパイラです。
解凍してmikroC_PRO_PIC_2009_Build.3.20.exe
をダブルクリック
OK
Next
Check
Next
Next
mikroC PRO for PICは、mikroElektronika社のCコンパイラです。
解凍してmikroC_PRO_PIC_2009_Build.3.20.exe
をダブルクリック
OK
Next
Check
Next
Next
Next
Install
Finish
2009年10月22日木曜日
回数指定ループでLEDの点滅(8) 多重ループ
[実験 MikroC Pro PIC16F84A_LED_0018]
無限ループと回数指定ループを使っていろいろなパターンでLEDを点滅させなさい。
mikroC PRO for PIC
無限ループと回数指定ループを使っていろいろなパターンでLEDを点滅させなさい。
mikroC PRO for PIC
登録:
投稿 (Atom)