2026年6月12日金曜日

シフトレジスタ[74HC165]で大量のキー入力に挑戦! なんで資料が少ないの?

 シフトレジスタ[74HC595]を使って11個のLEDを点灯させることができたので、次は入力だ! ということでシフトレジスタ[74HC165]を使った11個のキー入力に挑戦したのだけれど、これが苦戦の連続だった。

 出力側につかうシフトレジスタ[74HC595]の参考資料やサンプルプログラムは、公式サイトやあちこちのブログに書かれている。でも入力側につかう[74HC165]に関しては、(自分が理解できる)ちょうど良いものを見つけることができなかったのだ。

 もちろん資料がゼロというわけではない。データシートや海外の解説記事も見つかった。でも初心者向けに「こう繋げば動くよ」と説明してくれる記事は少なく、自分には少しハードルが高かった。

 それから苦戦した原因のもう一つ。これは完全に自分が悪い。すぐに動くだろうと考えて、単体テストを行わずに、いきなり制作中の基板に[74HC165]を2つも繋げてしまった。

 そのせいで追加した回路が悪いのか? ICが壊れているのか? 元々動いているLED表示側回路が実は間違っていたのか? テストプログラムが間違っているのか? 原因を特定することができなくなってしまった……。

 さんざん試行錯誤をしたあとに冷静になって、入力側のシフトレジスタ[74HC165]を1つだけでテストする別の基板をつくってみた。ChatGPTに回路図やテストプログラムを何度も見てもらいながら、なんとか動かすことができるようになり、その後で[74HC165]を更に追加した。

 本当はブレッドボード2枚に全部の回路を納めようと思って詰め込んでいたけれど、また修正する可能性が高い。3枚構成にすることにした。一番下はユーザーインタフェース専用基板、2枚目はLED出力管理専用基板、3枚目はキー入力管理+UIAPduinoを設置する基板となった。

 ひとまず11個のLEDを、対応する11個のタクトスイッチを押すと光らせる所までは、つくることができた。次はブザーをつけて、音を鳴らすつもり。

 今度は絶対に単体テストをしてからやるぞー!


ブレッドボード3枚になってしまった!


0 件のコメント:

コメントを投稿

人気の投稿