2019年6月15日土曜日

Arduino+74HC595+8×8nマトリクスLED(6.3)

「行側制御にシフトレジスタ使うのもったいなくね?」問題の第三回です。

前回(6.2)の末尾【今後の展開】に書いた、負論理出力でシンクドライバIC的な増幅ってどうやるの?の調査をしてみました。

手っ取り早くGoogle先生に質問するのが定番ですので「74HC138 LEDマトリクス」とベタに尋ねたところ、色々と答えてくれました。

何かしらのマイコンと74HC138を使ってLEDマトリクスを駆動する場合、74HC138をスキャン側に使い、マイコンのIOピンでパターンを指定することになります。
74HC138は3to8デコーダで、8つある出力ピンのうち入力された3bitに対応するピンを選択するという機能になりますので、当然パターン選択はできませんからスキャン側にしか使えません。

主に画像を見ながら興味を引いたものについて実際にリンク先の記事など読んでみる、という手法で色々と探って以下の解決策が有望な感じ。できれば手持ちのシンクドライバ(TBD60283)を使えたらいいな~。


【解決策その1:74HC138の代わりに74HC238を使用する】

74HC238というロジックICがありまして、機能的には74HC138と同じ3to8ラインデコーダなのですが、出力が反転・つまり正論理になっています。これを使えばシンクドライバのTBD60283を駆動できます。なんだか一番手っ取り早そうな解決策です。

【解決策その2:74HC138の出力にNORゲートを接続する】

74HC138は負論理出力ですので、GNDとのNotORをとれば74HC138の出力がLOWの時にHIGHにすることができます。ということはNORゲート(74HC02)を接続して出力をシンクドライバに接続すれば、その1と同じことができます。

【解決策その3:74HC138の出力にMOSFETを接続する】

そもそもMOSFETが何者なのかよくわからないのですが、トランジスタと同じような増幅作用を持つ代物のようです。※自分の知識不足ですので、この解決策は採用しないことにします。

【解決策その4:74HC138の出力にトランジスタを接続する】

まず検討すべき方策がこれで、適合するトランジスタはいくつかあるようです。しかしながらハンダ付け箇所がIC利用の場合よりも8か所余分に増えるので面倒くさい、という理由で採用しません(笑)

手持ちの74HC138を使うとすれば、その2:NORゲートを使うの一択ですね。
来月は74HC02を調達することにしよう。


【参考】

32x16 LED Matrix Panel and Arduino 4953って多分MOSFETだよね?


【いろいろとヤバそうなモノ】

16×128 LED dot matrix screen 74HC138に全部直結しちゃって大丈夫なの?
Drawing on 8x32 LED matrix with 74HC154 74HC154は4to16デコーダですのでこれ動かねーわ(笑)


0 件のコメント:

コメントを投稿

ESP32 Devkit C での疑問点

 前回の投稿から放置状態にあった当ブログですが、再び何かしら作ろうということで、スマートコンセントもどきに取り組んでいます。 回路なども一応動作するものができたのですが、ブレッドボードから移行するために基板に用意しておいたピンソケットにESP32を取り付けたところ、なぜか動作しま...