アフィリエイト広告
アフィリエイト広告

ダイオードマトリクスで10進7セグLEDドライバを作ってみる

7 セグメント LED で数字を表示させるとき、「 7セグメント LED を点灯してみる」でやってみたように、点灯させるセグメントの組み合わせをいちいち考えていたのではらちがあきません。そこで、0 から 9 の押ボタンを押したときに、その数字を表示させるダイオードマトリクス回路を作ってみます。

ダイオードマトリクスとは

一つの入力に対して必要なセグメントを出力させるような論理回路の一種に「ダイオードマトリクス」というのがあります。

マトリクスとは行と列があるもの、たとえば「Arduino スケッチ例「8×8 LED Matrix」で Lチカしてみた」のような行と列の交点を LED で接続したものが LED マトリクスです。交点をスイッチで接続したものはキーマトリクスといいます。
LED マトリクスでは、特定の行から列へ電流を流すと、その交点にある LED が点灯します。キーマトリクスでは、交点にあるスイッチを押すと、それがつながっている行と列に電流が流れます。

ダイオードマトリクスは、交点をダイオードで接続しています。
特定の行に電流を流すと、交点のダイオードを介して列に電流が流れます。一つの行から複数の列へダイオードで接続されていると、一つの行の入力から複数の列へ出力することができるので、7 セグメント LED の決められたセグメントを複数点灯させることができます。

7セグメントLEDを制御するダイオードマトリクス回路

0 から 9 までの押ボタンを押す、つまり 10 進数を入力することにより 7 セグメント LED の必要なセグメントを点灯制御するダイオードマトリクス回路は、左図のようになります。
なお、小数点は使っていないので接続していません。

0 の行につながれたスイッチ S0 を押すと、ダイオードでつながれた a b c d e f 列のセグメントに電流が流れ、[ 0 ] が表示されます。
同様に、S4 を押すと b c f g に電流が流れて [ 4 ] になります。
このようにして、特定の押ボタンを押すことでその数字を表示させることができるようになります。

ただし、このダイオードマトリクスでは、同時に二つ以上のスイッチを押すと正常な表示ができません。入力は一つに限られますので、注意が必要です。

ブレッドボードに一部だけ組み立ててみた

回路図でもわかるとおり、ダイオードマトリクス回路にはたくさんのダイオードが必要になります。
今回は手持ちのダイオードの数が足りませんでしたので、一部分だけを組み立てて、実験してみました。

写真は、下の押ボタンを押して [ 4 ] を表示させている状態です。
もう一つのボタンを押すと [ 7 ] が表示されるのですが、どちらもダイオードが 4 個の回路です。

マイコンでの制御には不向き

スイッチ部分はマイコンで制御することもできますが、10 個のラインが必要になりますから実用的ではありません。もともとダイオードマトリクスは、リレーシーケンス回路で使われていたのではないかと思います。

マイコンなどで制御するときは、入力を 2 進数にすることでラインの数を減らすことができますので、次回は 2進数を入力にした LED ドライバを考えてみたいと思います。

タイトルとURLをコピーしました