スイッチとは日本語では「開閉器」と呼ばれ電気の通り道をつないだり開いたりするものです。
スイッチには人が操作することで動作する「操作スイッチ」と、状態や状況によって動作する「検知スイッチ(センサー)」があります。
ここでは人が操作する「操作スイッチ」について詳しく紹介します。
1.スイッチ接点動作の種類
スイッチの接点には動作した時の接点状態の変化によって下画像のような種類があります。
2.「押しボタンスイッチ」の紹介
「操作用スイッチ」として一般的な「押しボタンスイッチ」について紹介します。
下画像のスイッチは2つの「押しボタンスイッチ」がケースに収められていて、汎用性の高い「コネクタ(Grove)」がついているものです。
これは「M5Stackテクノロジー社」製の「デュアルボタンユニット」で「スイッチサイエンス」さんで購入できます。(M5Stack用デュアルボタンユニット:407円(送料200円))
2つのボタン(a接点)がはんだ付けなしで使えて、コネクタ付きで使いまわしもできて便利です。




青ボタンを押すと「A(白線)」と「GND(黒線)」がつながります。
赤ボタンを押すと「B(黄線)」と「GND(黒線)」がつながります。
3.スイッチの使い方
スイッチの使い方を回路図を使って紹介します。
・単純なON/OFFの場合
電源につないだランプを点灯させたいときは電源とランプを繋ぐ配線の間にスイッチを入れるだけです。
これでスイッチがONするとランプが点灯し、スイッチがOFFするとランプが消灯します。
・ON/OFFの状態を検知する方法
スイッチのON/OFF状態を知るためにはいろいろな方法がありますが、マイコン(マイクロコンピュータ)等を使った電子回路では上画像のように行います。
マイコンの制御用電源(今回は3.3V)と0Vの間に抵抗(R1)経由でスイッチ(SW1)を繋ぎます。
こうすることで抵抗とスイッチの間の電圧はスイッチ「OFF」のとき制御用電源の3.3Vに、スイッチ「ON」のとき0Vになります。
この電圧をマイコン側で確認することで3.3Vの時はスイッチが「OFF」で0Vの時は「ON」になっていることを検知することができます。
4.プルアップ抵抗について
「HIGH」か「LOW」かは入力端子の「電圧の範囲(しきい値)」によって判断されていてマイコンごとに異なりますが、例えば以下のようなものです。
HIGH:2.5V~3.6V
LOW:0V~0.8V
※0.8Vを超えて2.5Vより小さい電圧のときは「HIGH」か「LOW」の判断ができません。
このため「HIGH」と判断される電圧を加えつつ、マイコンが壊れないように電流を制限するための抵抗が必要で、この抵抗を「プルアップ抵抗」と呼びます。
「プルアップ抵抗」は使用するスイッチや用途に応じて選定しますが、多くのマイコンでは端子ごとに「プルアップ抵抗」が内蔵されており、プログラムで有効にして使うことができるため動作確認程度であれば非常に便利です。
「プルアップ抵抗」の動作について、マイコンに内蔵の「プルアップ抵抗」を「有効」にした場合と「無効」にした場合で紹介します。(外付け「プルアップ抵抗」無しの場合)
・内蔵のプルアップ抵抗を「有効」にしたとき
マイコンの入力端子のスイッチが「OFF」のとき、入力端子の電圧はプルアップ抵抗経由で制御用電源の3.3Vに繋がっているため「3.3V(HIGH)」になり、スイッチが「OFF」であることがわかります。
スイッチが「ON」のとき、入力端子の電圧はスイッチ経由で0Vに繋がっているため「0V(LOW)」になり、スイッチが「ON」であることがわかります。
・内蔵のプルアップ抵抗を「無効」にした場合
マイコンの入力端子のスイッチが「ON」のときは入力端子が「0V(LOW)」になりますが、スイッチが「OFF」のときには入力端子はどこにも繋がっていないため、入力端子の電圧はノイズレベルで安定せず何Vになっているかがわかりません。このためマイコン側では「HIGH」と「LOW」の判断が出来ず、スイッチのON/OFFがわかりません。
このように、マイコンの入力端子でスイッチのON/OFFを検知するためには「プルアップ抵抗」が必要となります。
5.スイッチ使用時の注意(チャタリング)について
スイッチの接点が物理的(機械的)に動作するものは「チャタリング」という現象に注意が必要です。
機械式接点の場合「ON」した時に接点が「ピタッ」とつながらず、接点同士がぶつかった衝撃で「バウンド」して下画像のように短時間でON/OFFを繰り返します。
この現象は数μ秒~数十m秒間続きます。
ランプを点灯させる程度では問題ありませんが、高速で処理を行うマイコンの場合にはスイッチを1回押したつもりが複数回押したことになってしまいます。
このための対策としてはスイッチが動作した時にマイコンの入力端子への電圧の変化を外部の電子回路で遅延させる方法と、入力端子の状態が変化した時にプログラムで電圧の安定を待ってから処理をさせる方法があります。
コメント