LEDマトリックス表示器

2001/07/17更新


2001/07/17
 秋月で@200円で売られている10x10ドットのLEDマトリックスを、何かに使えるかなぁ?と思って買ってみたんですが、いい使い道が思い付きませんでした。加速度センサを使って明和電機ビットマンもどきを作るという案は、意外とセンサが高いので断念(笑)。
 そのまま眠らせてしまうのも悔しいので、AVRを使って文字列のスクロール表示ができるという代物を作ってみました。


 毎度おなじみ秋月のCタイプ基板に、AT90S2313、74HC164(シフトレジスタx2)、三端子レギュレータ、LEDマトリックスという構成です。基板の右下に付けてある端子は、シリアル通信用のレベル変換サブ基板と接続するためのものです。
 LEDマトリックスは基板から2mmほど浮いていて、抵抗がその下に入っています。


 レベル変換サブ基板を接続し、更にRS232Cコネクタを接続するとこんな感じになります。ちょっと不格好ですが、設定するときだけ接続してあとは外してしまうので、問題なし(笑)。


 回路図はこんな感じです。8ビットのシフトレジスタを2個使っていますが、LEDが10x10なので5ビットずつ使うようにしています。10ビットのシフトレジスタがあれば良かったんですけどね。

ソースとバイナリ

 プログラムは8ビットタイマでLEDのダイナミック駆動、16ビットタイマでスクロールを行っています。シリアルポートからのコマンドで、スクロール速度と表示メッセージを設定することができます。
 今回はAVRのクロックとして4MHzのセラロックを使用したため、シリアル通信の速度は9600bpsになっています。
 設定した値はAVRのEEPROMへ書き込み、電源を切っても内容が保持されるようにしました。設定時に使用するコマンドは、以下のようになっています。

コマンド 内容
S  このコマンドの後に続けて数字1文字を送る事で、スクロール速度を変更できる。
 0:早い
 1:普通
 2:遅い
M  このコマンドの後に続けて送信した文字列が、表示文字列となる。文字列の終わりは改行(0x0D)コード。最大64文字。
R  表示文字列と、スクロール速度をデフォルトの値にリセットする。
?  ファームウェアのバージョンを返す。

 LEDマトリックスでスクロール表示という、さほど目新しさのないモノですが、個人的にはLEDのダイナミック駆動と、AVRのEEPROM読み書きについて試すことができたので、なかなか勉強になりました。
 最近秋月では16x16のちょっと大きめなLEDマトリックスも安く売られているようなので、そのうちそっちも試してみたいと思っています。 

戻る
メインへ戻る


mailto:[tokoya][at][mars.dti.ne.jp]