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

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


さてこのPWMの波形をプログラムで変える試みを行うのが今回の話題です。
プログラムをマイクロプロセッサーに入力します。このプロセッサーのメモリーは電源が切れるとコンピュータが忘れてしまうので電源は入れっぱなしです。普通のPC等は電源が切れてもディスク等のデータやプログラムが記録されていますので問題はありませんが、このボードコンピュータはあまりにも構造を簡単胃しているので仕方がありません。またプログラムもプログラム言語で作って自動的に入力する機能もありません。直接マイクロプロセッサーを動作させる機械語を手動で入力しなければなりません。
プログラムは付録についていたものをそのまま流用させてもらいました。JUMP命令でループを作り、JUMPに入る前にLEDを消灯して、JUMPループの回数を一つずつ減らしていってパルスのOFF時間を少なくしていこうというプログラムです。JUMPから外に出るとLEDを点灯させるというシロモノですね。後のループで同じようにON時間を減らせていきます。その結果LEDが暗くなったり、明るくなったりを繰り返すのです。
ただし繰り返して言いますが、自分の手でワンステップずつ入力します。このプログラムではDuty Cycleを1/9から8/9に増加させ、その後8/9から1/9まで減少させそのサイクルを繰り返します。

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

LEDの明るさをPWM(パルス幅変調)技術をつかって変化させようという試みです。
下図にアナログ制御とPWM制御の違いを示します。

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



さてこのPWMの波形をプログラムで変える試みを行うのが今回の話題です。
プログラムをマイクロプロセッサーに入力します。このプロセッサーのメモリーは電源が切れるとコンピュータが忘れてしまうので電源は入れっぱなしです。普通のPC等は電源が切れてもディスク等のデータやプログラムが記録されていますので問題はありませんが、このボードコンピュータはあまりにも構造を簡単胃しているので仕方がありません。またプログラムもプログラム言語で作って自動的に入力する機能もありません。直接マイクロプロセッサーを動作させる機械語を手動で入力しなければなりません。
プログラムは付録についていたものをそのまま流用させてもらいました。JUMP命令でループを作り、JUMPに入る前にLEDを消灯して、JUMPループの回数を一つずつ減らしていってパルスのOFF時間を少なくしていこうというプログラムです。JUMPから外に出るとLEDを点灯させるというシロモノですね。後のループで同じようにON時間を減らせていきます。その結果LEDが暗くなったり、明るくなったりを繰り返すのです。
ただし繰り返して言いますが、自分の手でワンステップずつ入力します。このプログラムではDuty Cycleを1/9から8/9に増加させ、その後8/9から1/9まで減少させそのサイクルを繰り返します。


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

スポンサーサイト
