マイコン制御基礎の次

マイコン制御基礎の次(6)

スイッチチャタリングの傾向と対策

みわよしこ(執筆協力:山本栄一、小椋秀一、宇野雄騎)  2009/11/24

- PR -

「RC」で鈍くする

 「RC」はラジコンの略ではなく、「抵抗(R)」と「コンデンサ(C)」のことである。

 チャタリング対策の1つは、「回路の反応を鈍くして、チャタリングで想定されるOFFONOFFON……に反応しないようにする」である。鈍くなり過ぎると、「本物のOFFONへの反応が遅くなる」「チャタリングではない本物のOFFONにも反応しなくなる」という副作用が発生するので、単純に「鈍くすればよい」というわけではないのだが、「適切に鈍くする」ことが可能であれば、チャタリング対策としては有効である。

 このためには、回路を「RC積分回路」にすることだ(図2)。この回路では、信号への反応の速度を決める「時定数」というパラメータが、回路中の抵抗「R」の抵抗値とコンデンサ「C」の容量の積(RC積)で決まる。時定数が大きければ大きいほど、鈍い回路となる。

図2 RC積分回路

 スイッチインターフェイス部分の回路図を見てみると、「R2+C1」部分が、RC積分回路の形となっていることが判明する。

 この部分のRC積は、

500(Ω)×10(μF)=5ミリ秒

となる。

 回路の時定数は、単純にRC積だけで決定されるわけではないが、今回のマイクロスイッチのチャタリングに対しては、十分に大きな“鈍さ”であると考えてよいだろう。

 画像4に、今回のスイッチの信号(黄色)と、RC積分回路通過後の信号の変化(水色)を示す。時間(横軸)が2.50ms/div刻みと大きくなっているのは、RC積分回路通過後の変化の全体を1枚のグラフに収めたためである。

画像4 スイッチの信号とRC積分回路通過後の信号の変化

 スイッチの信号をよく見ると、「OFF」「ON」で画像2と同様のチャタリングが起こっていることがかろうじて判明する。そして、RC積分回路通過後の信号の変化を見ると、チャタリングの影響をまったく受けていないことが分かる。

 「チャタリングを消す」という目的は達したのだが、どうもRC積が大き過ぎて、いささか鈍過ぎる回路になってしまったようだ。今回の「招き猫に福を招かせる」という目的に対しては、実際の支障はなかったのだが、高速での反応を要求される回路では、「チャタリングが消えるのはよいけれども、時定数が大きく、鈍くなり過ぎて用途に適しない」が問題になることもあるだろう。

シュミットトリガを通す

 今回はRC積分回路の後で、信号をさらに「シュミットトリガ」に通した。シュミットトリガとは、激しく増大・減少する信号に対して「最大になったと思われるから『High』」「最小になったと思われるから『Low』」という処理を行う仕組みで、完成品をICとして購入できる。

関連リンク:
シュミットトリガ−概説−(Wikipedia)
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%A5%E3%83%9F%
E3%83%83%E3%83%88%E3%83%88%E3%83%AA%E3%82%AC#.E6.A6.82.E8.AA.AC

 シュミットトリガを通過する前後の「OFF」「ON」の信号変化を、画像5に示す。

画像5 シュミットトリガを通過する前後の「OFF」→「ON」の信号変化

 シュミットトリガに入る前が黄色、出た後が水色である(画像5は、比較しやすくするために、高さをずらしてある)。もともとのスイッチの「OFF」「ON」であったと思われる時刻から5ミリ秒遅れて、デジタルに整形された「OFF」「ON」が出力されていることが分かる。

 「なぜ、シュミットトリガでなければならなかったのか?」には疑問が残るかもしれないが、取りあえず、チャタリングが消えた“美しい”「OFF」「ON」信号が出現したのは間違いない。

トランジスタでバッファリング

 スイッチのON/OFFをマイコンの入力として扱う場合、入力の手前で「High」または「Low」のどちらかにすることが可能であっても、トランジスタを介して、マイコンへ入力する。スイッチのON/OFF時には、突入電流やノイズなど多様な問題が発生する可能性があるため、通常、それを直接マイコンに「食わせる」ことはしない。

 スイッチからの信号によって、トランジスタに別の電源系統のスイッチ動作をさせて、その結果をマイコンに入力する。そうすることによって、マイコンに入力される信号は「『High』でなければ『Low』」となり、それ以外の信号がやって来る可能性を無視できる。つまり、トランジスタに「緩衝(バッファリング)」を行わせるわけだ。

 今回の回路では、トランジスタに入るのは、もともとRC積分回路とシュミットトリガを通過した信号である。そこに大きな問題はなく、ただ「スイッチONがマイコンへの確実な入力」となればよい。

 今回はトランジスタで「High」と「Low」の反転が行われるようにして、最終的なマイコンへの入力は「スイッチがONになったら『High』」「スイッチがOFFになったら『Low』」となるようにした。この様子を画像6に示す。黄色がシュミットトリガ通過後の信号、水色がトランジスタの出力である。

画像6 ここまでの対策を行った最終的な信号変化

 筆者たちが本回路で行ったのは、いずれも、スイッチをマイコンの入力として扱うための一般的な対策である。1つ1つは定石なのだが、いささか大げさ過ぎるかもしれない。また、個々の対策を見ると、「ちょっとズレているかもしれない」「必要なかったかもしれない」「用途によってはこれでは問題がある」といったツッコミどころがいくつもあるだろう。

 「備えあれば憂いなし」ではあるが、「すべての問題に、最初から備えたので、憂いがまったくない」ということはあり得ない(もちろん、人命にかかわる機器開発の場合は、『ここまでは確実に備えられた』から開発をスタートする必要があるが)。もしかすると、教科書に掲載されている定石は、“目の前の、その問題に対する正解ではないかもしれない”ということだ。

 結局、何がいいたいのかというと、ノウハウは“生々しい現実との付き合いの中から、身に付けていくしかない”ということである。相手がたかがスイッチ1個でも、「きちんとお付き合いする」のは大変なのだ。でも、「大変だけど、お付き合いはできる」という状態になれば、「では、次の段階のお付き合いを」「では、別のデバイスとお付き合いを」という応用の可能性が見えてくる。

 さて次回は、「招き猫」ロボットの“招き”動作の制御プログラムについて解説する。自分の理解した回路が、自分の理解したプログラムで動作するまで、もう少しだ。(次回に続く)

  • 連載バックナンバー
  • 全記事インデックス
  • 組み込み開発トップ
  • MONOistトップ

スキルアップ/キャリアアップ(JOB@IT)

スポンサーからのお知らせ

- PR -
@IT Sepcial

震災関連・復興支援情報

震災関連・復興支援情報
@IT MONOist/EE Times Japan/環境メディアの製造業技術者向け3メディアを中心に、震災関連/復興支援情報を集めました

次世代エンベデッドコーナー

次世代エンベデッド
“次世代”の組み込み機器を開発するエンジニアを支援するコーナー。新潮流・新技術をインタビューやコラム、解説記事で分かりやすく紹介!

Windows Embeddedコーナー

Windows Embedded
Windows Embedded専門コーナー。Windows Embedded StandardやWindows Embedded CEをはじめとする「Windows Embedded」ファミリの最新動向や技術情報をお届けします!!

Androidコーナー

Android
Android専門コーナー。組み込みデバイスへの適用からアプリケーション開発、イベントレポート、ニュースなどAndroidに関するさまざまな技術情報がここに集結!!

@IT MONOist 求人情報

- PR -