コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

PICデバイスと PC を RS-232C で接続できるようになったので、PC からコントロールしてなにかさせてみたくなる。
取り敢えず LED を光らせたいなーと思ったけれども、マトリクス LED によるメッセージボードとかはメジャーなんで今ひとつ興味が湧かない。常にぴろぴろ動いているのが良いよねということで、「外付け CPU 稼働率メーター」を作ることにした。

最初は基板に LED を並べてそれでやろうとしたけれども、ふととある物が頭に浮かんだのでそれを入手してみる。


これだ。

この手のおもちゃも中に 1チップマイクロコントローラーが入っていて、そいつが I/O を通じて LED を光らせたり、ボタンを監視したりしている。PIC デバイスの工作と非常に近いものとなっている。
こいつの売りは番組と同じ音楽が流れるところなんだけれども、PIC で音を出すのは困難だし、オリジナルのマイクロコントローラーと共存させるのも面倒なのでばっさりと切り捨て。
今回は LED だけを使うということで割り切る。



LED 部分の回路はこんな感じになっていた。
抵抗が既に配置してあるところがおいしい。実は元の基板上にはトランジスタもあったのでそれを利用したかったのだけれども、かえって面倒になるのであきらめ。


それをドライブするような回路はこんなで良いだろう。あっさり風味。
前の記事で作った PIC 実験基板を使うので、I/O ポート以外の回路は省略してある。

LED は 5×4 のマトリクスになっていて、同時に 5つまで光らせることができる。この 5つを光らせる組み合わせを RC0〜RC4 の 5つで制御する。カソードをここに繋ぐので I/O 的に ‘0’ で点灯、’1′ で消灯となる。
4つのセグメントのうちどのブロックを光らせるかの指示は RA0〜RA3 の 4つで指示する。最大 5つの LED が点灯するので、電流確保のためトランジスタで増幅させる。
後は、プログラム制御でセグメントを切り替えながら表示をコントロールしていく。この切り替えを高速に行うことで 20個全部が点灯しているようにみえるのだ。
これは元のおもちゃも、そうして表示していたのだ。


ハードウェアと PIC のプログラムが完成。
PIC のプログラムは目標値と現在の値を分けておいて、目標に向かってじわじわと変化していくようにする。こうするとぽんっと表示が飛んでしまわずに、にゅるにゅると上がり下がりをするメーターになり見ていて楽しい。

PIC 側のソースコード。
levelmeter.asm

次の記事へ続く。
—–

Leave a Reply