しなぷすのハード製作記

抵抗分圧器を使った、多くのスイッチのセンシング(1)

ツイート
シェア
このエントリーをはてなブックマークに追加
フォロー
目次へ  前のページへ (1) (2) (3) 次のページへ
スイッチセンシング回路の製作例
スイッチセンシング回路の製作例

目次

1. IOピン不足の救世主、アナログ入力 … 1ページ
2. 単純にスイッチの数を増やしていくと・・・ … 1ページ
3. 出力電圧を均等に配分する … 1ページ
4. 出力電圧を均等に分配する抵抗分圧器の設計法 … 2ページ
5. 抵抗値をE24系列の中の数値に丸める方法 … 2ページ
6. 出力電圧を均等に配分する設計法の問題点 … 3ページ
7. 出力電圧を均等に配分する回路での抵抗値の誤差の影響 … 3ページ

1.IOピン不足の救世主、アナログ入力

ArduinoやPICなど、マイコンを使った工作をしていると、IOピンの不足に困ることがあります。特にスイッチの状態の取得方法に関しては、普通にやると、スイッチの数だけGPIOピンを消費するので、スイッチがたくさん付いた回路を作る場合、ピン数の多い高価なマイコンを用いる必要があります。

しかし、アナログ入力ピンの付いているマイコンでは、少し工夫することで、一つのIOピンにたくさんのスイッチをつなげることができます。アナログ入力に入って来た信号は、A/D変換器で電圧を測定する事ができるため、GNDと電源電圧の中間の電圧を積極的に使うのです。

図1、アナログ入力端子を使った複数のスイッチのセンシングの原理
図1、アナログ入力端子を使った複数のスイッチのセンシングの原理

上の図は、抵抗分圧器を使って、2つのスイッチの状態を1つのアナログ入力ピンで監視する方法を解説した原理図です。図1(a)が回路図です。R1とR2の2つの抵抗を直列に接続し、分圧回路を構成します。SW1とSW2の2つのスイッチを分圧回路につなぎ、スイッチがONになるとGNDとショートするようにします。こうすることにより、スイッチの状態に応じて分圧器の分圧比が変わり、アナログ入力の電圧をA/D変換すれば、変換結果よりスイッチの状態を推測できるようになります。

図1(b)は、SW1、SW2共にOFFの場合の等価回路です。R2の下端がどこにもつながらないため、この抵抗には電流が流れません。その結果、出力端子をR1でVCCにプルアップした形となります。マイコンのアナログ入力端子の入力インピーダンスが十分高ければ、出力電圧はVCCになります。

図1(c)は、SW1がONになった場合の等価回路です。(SW2のON/OFFに関わりなくこの等価回路になる) 出力端子がGNDにショートされるため、出力端子の電圧は0になります。

図2(d)は、SW2のみがONになった場合の等価回路です。VCCがR1とR2による分圧回路で半分に分圧され、出力電圧は1/2 VCCとなります。

よって、アナログ入力端子の電圧がほぼ0ならSW1が押されており、ほぼ1/2 VCCならSW2が押されており、ほぼVCCなら両方のスイッチがOFFと判断できます。

なお、SW1はSW2より優先度の高いスイッチで、SW1がONになると、SW2の状態は不明になります。よって、この回路は、複数のスイッチがONにならないという前提、あるいは、より優先度の高いスイッチがONになっている際に優先度の低いスイッチの状態は無視してよいという前提で使われます。

広告

2.単純にスイッチの数を増やしていくと・・・

図1の回路の考え方を拡張すると、スイッチをどんどん増やしていくことができます。例として次の図のようにSW1~SW10の10個のスイッチをセンシングする回路を考えます。

図2、スイッチを10個センシングする例
図2、スイッチを10個センシングする例

出力電圧の計算の方法の説明は省略しますが、図2の中の表に書いたような出力電圧になります。この表を見ると、数字の大きなスイッチになるほど、出力電圧が似通った値になります。もう少し分かり易いように出力電圧の変化をグラフ化したのが図3です。

図3、ONにしたスイッチと出力電圧の関係
図3、ONにしたスイッチと出力電圧の関係

SW8、SW9、SW10あたりをONにした場合、出力電圧にほとんど差がない様子が分かります。これでは、少しノイズが乗っただけで、別のスイッチをONにしたのと勘違いしそうです。一方で、SW1をONにした場合ととSW2をONにした場合を比べると、出力電圧が0.5 VCCも違います。両者を区別するのに、0.5 VCCもの電圧差は不要です。

3.出力電圧を均等に配分する

そこで、出力電圧を均等に配分するように再設計したのが次の回路です。なお、この回路の設計法については、次回に説明する予定です。

図4、スイッチを10個センシングする例(改良版)
図4、スイッチを10個センシングする例(改良版)

この回路の出力電圧をグラフ化すると、次の様になります。

図5、ONにしたスイッチと出力電圧の関係(図4の回路に対応)
図5、ONにしたスイッチと出力電圧の関係(図4の回路に対応)

完全な直線のグラフになっています。図2の回路より、図4の回路の方が、ノイズやA/D変換器の誤差などに強い回路であることが分かります。

では、どのようにしたら図4のような回路を設計できるのでしょう?また、図4の抵抗値は、市販されている抵抗が採用しているE24系列の数値に乗っていませんが、無理やりE24系列の値に近似したら、出力電圧にどの程度の影響があるのでしょうか?次のページでは、このような事を議論します。

ツイート
シェア
このエントリーをはてなブックマークに追加
フォロー
目次へ  前のページへ (1) (2) (3) 次のページへ

このページで使われている用語の解説

関連ページ

関連製品

I/Oピン一つで読める4X4キーパッドキット 商品名 I/Oピン一つで読める4X4キーパッドキット
税抜き小売価格 750円
販売店 スイッチサイエンス 三月兎
サポートページ
I/Oピン一つで読める4X4キーパッド(完成品) 商品名 I/Oピン一つで読める4X4キーパッド(完成品)
税抜き小売価格 1150円
販売店 スイッチサイエンス 妙楽堂
サポートページ
I/Oピン一つで読める4X5キーパッドキット 商品名 I/Oピン一つで読める4X5キーパッドキット
税抜き小売価格 2000円
販売店 スイッチサイエンス 妙楽堂
サポートページ
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。
サイトマッププライバシーポリシーお問い合わせ用語集
しなぷすのハード製作記