トップページ > 電子工作インデックス > テトリス > 3. デコーダーを作る

3. デコーダーを作る

マトリクスを組めば、912個のLEDを制御するために必要なのは縦24列、横38列分の信号 線だけ…あわせて62本となります。しかし、これでも信号線は多すぎる気がします。 実際のところ、自由度が必要なのはタテというか、横一列の中での24個のLEDのON-OFF です。横の列は上から順にすべての行を選択していけばよいだけなので、1行ずつ独立して 動かす必要はありません。 イメージ的には原理のページの動画みたいなことを やろうというわけです…。
 よって、「38行を上から順に1行ずつセレクトしていく」 だけの目的には16進数を10進数に変換するデコーダーが役に立ちます。

デコーダIC 74HC154

「/」の記号がついているピンは負論理動作です。A0〜A3に16進数を入力すると、 その16進数に対応した出力ピンが1つだけ「0」になります。 たとえば0x0000を入力すると「Y0」のピンだけが0になり、0x0101を入力すると 「Y4」のピンだけが0になります。チップイネーブル端子E1、E2は両方0にした 時のみICが動作します。

16進数のことを「コード(code)」と呼ぶなら、このICはその16進数を 我々が日常使う10進数に直してくれるので、de・code…「デコード」…「デコーダー」 と名前がつけられました。逆に「エンコーダー」という部品もあります。 デコーダICは今回のようにアドレスバスの拡張によく用いられます。

8→64のデコーダーを作る

74HC154が1つだけだと、最大16個のアドレスしか指定できません。今回作ったLEDマトリクス は縦が38列なので、デコーダICは3つ(3つ目は多くのピンが余りますが…)必要です。

なぜか回路図が黒くなってしまいました…(汗)
データバスは4本だけで、チップセレクトピンを使って3つのICを切り替えて使用 しています。指定したいアドレスはマトリクスの縦の行0〜37のうち1つだけなので、 アクティブにするICも1つだけでよいことになります。
チップセレクトピンにはロジックをかませて、00→一番上のICを選択、 01→2番目のICを選択、10→3番目のICを選択…という具合になっています。
デコーダの出力はトランジスタのベースに接続し、トランジスタはLEDマトリクスの アノードに電流を流すよう配線してあります。(トランジスタは一番上の1つしか 書かれていませんが、38個分すべて同様に接続されています。あと、トランジスタの ベース保護抵抗が書いてありませんが、実際は入れてあります。)

38行のアドレスを指定するのに、たった6本のピンだけで間に合うので ピンの大幅な節約になります。
このままではマトリクスの横の列を指定しただけなので、次のLEDドライバ部で 指定した行の中でさらに1つずつON-OFFを決めるように回路を組んできます。

実際の回路

一番下のピンソケットはマザーボードからの信号です。(このあと改良して メスではなく、オスのピンヘッダを使用することにしました。なお、理屈ではデータ線 6本+電源…だけでよいのですが、ムダに大きいピンソケットを使っています…。) 中段にパラパラとある小さいICはすべてNOTゲートで、デコーダICの負論理出力を 正論理に直しています。一番上のICみたいに見える部品は全てトランジスタアレーです。 LEDを直接駆動しています。

前へ   次へ