fc2ブログ
プロフィール

kazutabakun

Author:kazutabakun
好奇心旺盛でいろいろなことに興味を持つタイプ。

最新記事
Amazon
時計
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
FC2ブログランキング
気に入ったら下記をクリックしてください。

FC2Blog Ranking

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

マイクロプロセッサー物語 その2:パルス幅変調方式でLEDの輝度を変える。

今日は前に紹介しました4ビットのマイクロプロセッサーを使って実際にプログラムを走らせる事にしました。
LEDの明るさをPWM(パルス幅変調)技術をつかって変化させようという試みです。

下図にアナログ制御とPWM制御の違いを示します。
Analog.jpg
アナログ制御、時間とともに電圧を変化させるものです。

以下の図がPWM制御です。電圧は全て一定。ONとOFFの時間間隔を変えて制御。ちなみにONの時間とワンサイクルの時間の比をDuty Cycleといって%であらわします。これらの図では20%,50%,80%の比の状態を示しています。
PWM 20 PWM 50
PWM 80

さてこのPWMの波形をプログラムで変える試みを行うのが今回の話題です。
プログラムをマイクロプロセッサーに入力します。このプロセッサーのメモリーは電源が切れるとコンピュータが忘れてしまうので電源は入れっぱなしです。普通のPC等は電源が切れてもディスク等のデータやプログラムが記録されていますので問題はありませんが、このボードコンピュータはあまりにも構造を簡単胃しているので仕方がありません。またプログラムもプログラム言語で作って自動的に入力する機能もありません。直接マイクロプロセッサーを動作させる機械語を手動で入力しなければなりません。

プログラムは付録についていたものをそのまま流用させてもらいました。JUMP命令でループを作り、JUMPに入る前にLEDを消灯して、JUMPループの回数を一つずつ減らしていってパルスのOFF時間を少なくしていこうというプログラムです。JUMPから外に出るとLEDを点灯させるというシロモノですね。後のループで同じようにON時間を減らせていきます。その結果LEDが暗くなったり、明るくなったりを繰り返すのです。

ただし繰り返して言いますが、自分の手でワンステップずつ入力します。このプログラムではDuty Cycleを1/9から8/9に増加させ、その後8/9から1/9まで減少させそのサイクルを繰り返します。

PWM Program1 PWM Program2

プログラムを動作させた動画を添付します。少し分かりにくいですが、LEDの輝度が少し暗くなってチカチカしながらまたもとの明るさに戻る事を繰り返しています。このプログラムではマイクロコンピュータに搭載されている数字表示用のLED軒度を変えています。下の写真の数字の部分です。

DSC01516.jpg



スポンサーサイト