複数スイッチを利用する際のピン数節約

PICやArduinoを使用していて、Keypad等複数のスイッチを使用したい場合がある。

そんな時に便利だと感じた回路は以下の通り。

分圧方式 f:id:MarkovChainMonteCarlo:20200914192000j:plain

マトリックス方式f:id:MarkovChainMonteCarlo:20200914195309j:plain

メリットデメリットは以下の通り。

方式 メリット デメリット
分圧方式 回路が簡単
閾値を決めれば割込処理が可能
ADCによってスイッチを判別するため、プログラムが簡単
同時押しは対応できない
スイッチはADCで読み取る必要がある
スイッチの数は20個くらいまで
計算で求めた抵抗値はほぼ売ってない
マトリックス方式 デジタルによる読取りなのでいくつでも増やせる
複数同時押しでも正しく認識できる
ポーリングで常に監視が必要
ダイナミックスキャンのため、プログラムが複雑

同時押しを想定しない限り、ピン数の節約から言っても分圧方式が一番いいと思う。
マトリックス方式って、意外とピン数の節約にならないし。)