S領域の話題 -54ページ目

S領域の話題

長野にある株式会社システムクラフトのブログ

制御の世界でまず一番最初におぼえるべきノウハウの一つとして、『チャタリング処理』と言われるモノがあります。

これは、機械接点におけるノイズの除去方法になります。

 

機械接点(一般的なスイッチやリレー接点)などは、物理的な接点が物理的に動作して電気的なON/OFFをさせます。

この時、目には見えませんが接点がバウンドしたりノイズが発生したりするため、スイッチがあたかも2回や3回押されたように判別してしまう現象が発生します。

これは稀に出る現象では無く、ほぼ確実に出てしまう現象です。

人は1回しか押していないつもりなのに、2回も3回も押したような動作をしてしまうと、おかしい!と思われてしまいます。

 

対策として、ハードウェア的に抵抗やコンデンサ、あるいはロジック回路を入れる方法がありますが、モノが入ると当然ハードのコストアップの要因になります。

そこでソフトウェア的に対策する場合が多くなります。

 

ソフトウェアでどのように対応するかと言うと、要するに1回のON信号だけではONしたと信用せず、連続2回や3回ON信号が読み取れて、初めてONしたと認識します。

OFFも同様、2回や3回連続してOFF信号が読取れたら初めて信用してOFFとします。

オオカミ少年の言葉はすぐには信用しないということをソフトウェア上で実践しているのです。

 

この計算式を、私は学生時代の忘れもしない『電子工学概論』の授業中に講義を聞きもせず貧弱な頭脳で導き出しました。

それが以下の式なのですが以来30有余年、そのまま使っております。

andやorは論理演算になりますが、別段何の変哲も無く全く複雑さも感じられない小学生並みの素直な式です。

ところが、未だかつてこの様なチャタリング処理の計算式を紹介している本もサイトも全く見たことが無く、皆さんどうやっているのか不思議でたまりません。

 

もし技術屋の皆さんがいましたら、もっと簡単にこんな式もあるよとか、自分はこんな方法でやってるよとかぜひ教えてください。