PIC16F84電子遊戯(80)
最終更新日:2002年8月22日
仮面ライダーシステム・その8 (1ページ)へ (2ページ)へ (3ページ)

仮面ライダーシステム・その8「蜘蛛男」の動作チャート
今回の「蜘蛛男」の動作チャートをまず見て下さい。
「R」「G」「B」のボリュームについては、SW2を「ON」にした後、SW1をプッシュすることにより、測定する仕様にしております。
(蜘蛛男の動作概略フローチャート)
このチャートの理解としては、二つのプログラムが入っていると考えて下さい。
まずひとつは今までの仮面ライダーシリーズと同様の、プッシュボタンを押せば、LEDの点滅アクションが一定時間続くプログラムです。このプログラムは通常スリープモードで待機しており、プッシュボタンの割り込みにより一連の動作を行い、再びスリープモードに入る処理を行います。
もうひとつは、今までの簡易A/Dコンバータを搭載したプログラムと同様に、動作中はA/Dコンバータの処理に集中するというプログラムです。
このふたつのプログラムを次のフラグの内容に従って処理を切り換えるようにしています。
sw_flg プログラムの処理を切り換える
このフラグの初期値は「0」になっており、通常の仮面ライダーシリーズと同様の動作を行います。SW2を押すことによりこのフラグが「1」となって、A/Dコンバータの処理を行うようになります。A/Dコンバータの処理はSW2を「ON」後、一回のSW1を「ON」した時のボリューム値を取り込むようにプログラムしました。その後はSW2の「OFF」を待つ処理となるので、再度ボリューム値を読み込む時は、一度SW2を「OFF」して再度「ON」したからSW1を押すことになります。
以上、概略ですが、動作フローは理解していただけましたでしょうか。
仮面ライダーシステム・その8「蜘蛛男」のボリューム値計測データ
前回のシミュレーション並び動作検証によりますと、ボリュームを回転させることによる計測時間は最小が約9msec前後、最大値が約23msec前後となっております。
この時間に対する計測データは割り込み時間が192usecとすると次のようになります。
9msec/0.192msec=46=2EH
23msec/0.192msec=119=77H
となります。この計測値の変化を各LEDの輝度変化に割り当てるために次のように決定しました。(ソースファイルの内容と照らし合わせながら理解をお願いいたします。)
割り込みカウント値 輝度データ
30H未満 00H
30H〜37H 10H
38H〜3FH 20H
40H〜47H 30H
48H〜4FH 40H
50H〜57H 50H
58H〜5FH 60H
60H以上 70H
仮面ライダーシステム・その8「蜘蛛男」の全ソースリストと全HEXコード
毎度お馴染みのソースリストとHEXコードです。
ソースリストとHEXコードを一緒に圧縮しています。ダウンロードしてじっくり眺めて下さい。
ソースリストとHEXコードはこちらです。
仮面ライダーシステム・その8「蜘蛛男」の大完成
では完成した雄姿(小さーーーい!!)をご覧下さい。
(青色です。)
(緑色です。)
(赤色です。)
(紫色です。)
(橙色です。)
(水色です。)
(白色です。)
いかがでしょうか、もちろんこれ以上のバリエーションの色も出るはずです。
私の場合、緑色の輝度が低かったために、少し色がずれております。
「R」「G」「B」の部分を個別のLEDではなく、3色が一体となったものを使用すればもっと綺麗な色が出ると思います。
ということで今回はここまでとしましょう。次回以降もよろしくです。
これからも益々面白くなる「PIC16F84電子遊戯」をよろしくお願いいたします。

不明点などあればメールお願いいたします。nonchansoft@nifty.com