2006年 6月5日(月)
たまには、LED、ピカ、ピカ
たまには、適当にLEDを光らせて遊んでみたくなります。俗に言うLEDピカピカです。そんな訳で、秋月にて1個90円で購入した8×8ドットマトリクスLEDで文字スクロール式のディスプレーを製作しました。
このようなディスプレーは、「LEDネームプレート」などの名称で安いところを探すとなんと、1980円で販売されております。LEDマトリクスにはチップLEDを使用して小型、薄型に仕上げてあり、LEDの数も今回紹介するものよりかは遥かに多いのです。量産効果ならびに製造国にもよりますが、とても安いのには驚きです。買ったほうがいいかな・・・と思うのですが
でも、基本システムの習得と今後の応用を考えて、まずは自家製とします。
ダイナミックドライブ
入手したLEDユニットは赤色LEDが縦8個、横8個で64個マトリクス状に配列されているものです。したがって、64本の信号があれば、
いろいろな模様や文字を構成することができます。しかしながら、このLEDからは16本しかリードがでておりません。これは、ダイナミック点灯といって、
1列8個単位でのパターン信号でLEDを点灯し、横方向は時分割で切り替えて点灯することにより、64個のLEDを点灯しているように見せるものです。
したがって、縦方向を一度に点灯させられるのは1列の8個です。横方向は8本の信号で順番に切り替えます。
●3TO8デコーダー 74HC138
今回制御に使用するマイコンはPIC16F819ですが、18ピンのマイコンで電源を除くとI/Oは16本です。ちょうどぴったり使い切れると良いのですが、
RA5はINPUTオンリーなので1本足りません。そこで3本の信号を8本に分ける、3TO8デコーダー、 74HC138で3ビットのデジタル信号を8本にデコードします。
※74シリーズは久しぶりに使いました。それもNEC製・・・作っていたのですね。
これで、横方向の切り替えを行います。縦方向にはPORT−Bの8本をすべて使用し
横方向の位置に応じた文字パターンを出力します。
●ちらつきと表示速度
ダイナミック点灯では常に横方向が1〜8まで切り替わっております。人間の目で切り替わりというか、ちらつきがわからなくなる位の速度で切り替える必要があります。
今回は縦1列が点灯している時間を1mSにしました。8列なので1スキャン約、8mSとなります。ちなみに1列5mSで1スキャン40mSですど、バリバリちらつきました。
「関連として7セグメントのダイナミック点灯の解説はこちらへ」
文字パターン
縦方向の情報である文字パターンですが、パターンはプログラム内部に設けてテーブル参照で各列の各文字を選択してポートに出力します。
右から左へのスクロール表示なので列2〜7を1つ左にシフトした後、8列目に新しいパターンを出力することでスクロールしているように見せます。
「文字パターンはこちらへ」
※RETLWでのテーブル参照はページの切り替わりに注意が必要です。これを考慮しないと、確実に暴走します。
部品実装
■一見簡単な回路ですが、配線は結構大変です。 「回路図はこちらへ」
※この回路図はA/D入力を考慮しておりません。
写真左は1号機、ディスクリート100%で構成しました。写真、真ん中はLEDドライブ系に表面実装部品を使用したことにより、1号機の半分の面積となりました。
部品配置を検討するとまだまだ小型化ができそうです。
今後の応用
このディスプレーにPIC16F819を使用した理由はA/Dを利用したいからです。
これが不要であれば、18ピンPICならばどれでもかまいません。
※ソフト変更は必要です。
A/Dが利用できれば数値表示、あるいはグラフ式の温度計、電圧計が構成できます。また、インテリアとしてのオシロスコープのようなものもできます。
また、スクロールではなく、数枚のパターンを1ショットで表示を繰り返すことにより、アニメーションもできます。新しいアイデアがでてきましたら、またここで紹介します。
●表示文字列の外部設定
まず最初に取り掛からなければならないのは、表示文字列を外部から設定できる機能です。
現在ダウンロードできる、HEXコードはこのソフトで表示可能な文字をすべてスクロールで表示するだけの機能です。
■ダウンロード 「PIC16F819用 HEXコード」
ソースコード(MATRIX.ASM)は体裁を整えて、近日中にアップします。
●表示桁数の拡張
横方向のLEDの数はユニット2個分の16ドットまでですと、回路追加とソフト変更で可能です。
3ユニット以降は一気にダイナミック点灯できるのか?ちらつきの問題があります。
これがなければ1つのマイコンで7ユニット、56ドット(448ドットマトリクス)まで並べることが可能となります。ただし、この場合A/Dはつかえません。
|