回答編集履歴

2 追記

tmp

tmp score 209

2018/10/19 12:39  投稿

2列の写真ですが、見るとダイオードが意味のない状態になってるように見えますが、大丈夫でしょうか?
追記10/18 7:00
追記10/18 19:00
ダイオードがブレッドボードの同じ番号のAとDに刺さってるように見えて、このブレッドボードはAとDは、つながってるのではないでしょうか?
その場合は、ダイオードが付いていない状態と同じになると思います。
そして、2列の写真で判断しましたが、1列の時も同じように接続していないでしょうか?
そうすると症状として1つのボタン押しの時は、正常で2つ以上の場合は、出力がぶつかり出力不定になるのではと思います。
そうすると症状として1つのボタン押しの時は、正常で2つ以上の場合は、出力がぶつかり出力不定になるのではと思います。
追記10/19
回路図で入れ替えててるのは、気が付いてましたが、何かの使いまわしでそうなってるものだと思っていました。
ボタン0と4が入れ替わるのは、74HC138の出力がESP32の出力から読み取りまですぐの為に間に合わないからと思われます。ESP32の3つの出力を順に出力していきますが、最終の14PIN出力直後に即読むため、その14PINの出力後74HC138の出力変化前の状態の結果を読み取ってしまうからと思われます。
14PINが変化するのは、ボタン7から0 , 3から4 で 14PInが前の状態だとすると 0のとき4の状態に、4の時は、0の状態になり、症状にあいます。
GPIOの出力後、GPIOの入力までにほんの少し待ちをいれるか、もう少し速い138に変えれば、正常に読み取れたと思います。
プリスケーラと書いていますが、なんのプリスケーラを変えたのかわかりませんが、おそらく処理を遅くしたことで74HC138が間に合うようになったのでしょう。
1 詳細追加

tmp

tmp score 209

2018/10/18 19:07  投稿

2列の写真ですが、見るとダイオードが意味のない状態になってるように見えますが、大丈夫でしょうか?
2列の写真ですが、見るとダイオードが意味のない状態になってるように見えますが、大丈夫でしょうか?
追記10/18 7:00
ダイオードがブレッドボードの同じ番号のAとDに刺さってるように見えて、このブレッドボードはAとDは、つながってるのではないでしょうか?
その場合は、ダイオードが付いていない状態と同じになると思います。
そして、2列の写真で判断しましたが、1列の時も同じように接続していないでしょうか?
そうすると症状として1つのボタン押しの時は、正常で2つ以上の場合は、出力がぶつかり出力不定になるのではと思います。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る