今回はLEDをPWM制御するプログラムを作ります。今回やってみること前回はPWM制御の概要を確認しました。今回は、PWM制御のプログラムを作成して実際にLEDの明るさを調整してみます。今回は以下の手順で進めます。回路は基礎編で製作したブレッドボードをそのまま使用しますプログラムは新しいプロジェクを作成してプログラムを作りますプログラムを考えるそれでは早速どのようにプログラムを作成すればよいか考えてみましょう。LEDをどのように制御するか検討します。LEDの点滅が1秒間に100回〜200回程度以上であれば、実際にはLEDが点滅していても人間の目には点滅しているようには見えないので、「周期」は1秒間に200回となるようにします。PWM制御のデューティー比を50%にした場合、どのようなプログラムになるか考えてみます。LEDを1秒間に200回点滅制御すると、制御信号はこの図のようになります。ここで時間の計算をしてみます。この図のピンク色文字の周期と、青文字のデューティーサイクル(DC)はそれぞれ何秒になるでしょうか。デューティーサイクルはその半分ですので、0.0025秒です。それでは早速プログラムを考えてみます。日本語交じりの表現で考えてみると、以下のようになります。0.0025秒待つ;}PWM制御って言葉は難しいですが、実際のプログラムは随分簡単ですよね。思ったのも束の間、ここから大変になります。上の日本語交じりのプログラムを実際のPICマイコンのプログラムで書いてみます。LEDの点滅制御も時間待ちも基礎編で出てきましたよね。__delay_ms(???);}「__delay_ms()」関数は、引数の単位はミリ秒です。なると引数の値がすぐにわからないですよね。0.0025秒と計算したのはいいけど、ミリ秒(ms)にすると値はどうなるのか、もうちょっと計算が必要です。時間の計算PWM制御をする場合、時間の計算が出てくるので、これを機会にミリ秒、マイクロ秒の計算に慣れましょう。読むだけではなく、実際にご自分で計算してみてください。この時間の計算ですが、PWM制御に限らず、その他の電子回路で時間計算をする場合はmsやμsがよく使われます。先ほど計算した「0.005秒」や「0.0025秒」はmsやμsで表すとどうなるか、頭の中で計算できるようにしましょう。この後は、秒を「s」、ミリ秒を「ms」、マイクロ秒を「μs」と表します。msとsの関係を整理しておきましょう。1000mL(ミリリットル)」がありますよね。m(ミリ)は1000分の1を意味します。sとmsの変換方法を確認してみましょう。msからsに変換するには、1000で割り算すればOKです。