目的単純なスイッチ(ON/OFF)を判定する際に、できるだけマイコンのIOポートを節約するための方法を考える なぜ単純なスイッチでは駄目なのか単純なON/OFFであれば下記の様な単純なスイッチでも問題ないです。 ※GPIO23は入力ポートとする 単純なスイッチ(1スイッチ/1ポート) GPIO23はプルアップされていて、常にHIGHとなっている状態です。 ここでスイッチが押されるとGNDに接続されてLOWになる感じですね。 個人的にこの設計はシンプルで好きです。迷うこともないし。 しかしこれで例えばキーボードなんて実装しようとしたらIOポートの数の壁にぶち当たるのは想像できますね。 同時押しを考えないでいいのならアナログ入力少し複雑になりますが、原理はわかりやすい。 アナログ入力で判定する(nスイッチ/1ポート)GPIO23をアナログ入力とすると、プルアップされているので常に3.3V付近です。 SW1が押されるとGNDに落ちて0V, SW2が押されると分圧回路が成立して半分の1.65V付近になります。(誤差や熱による変化が考えられるため)