ETS2 コンビネーションスイッチのチャタリング対策

published_with_changes 更新日: event_note 公開日:

labelETS2 labelGaming Gear

ほぼ1年間触っていなかったETS2を最近また始めました。おそらく接点の腐食だと思うのですが、自作したコンビネーションスイッチの調子が良くないです。接点復活材をスプレーしてみたりしたのですが、ウインカーだけは動作は芳しくありません。以前もミスることが時々あったのですが、それがひどくなったという状況です。

チャタリング対策はハード、ソフトの両面で行っているのですが、あまり有効ではなかったみたいで、この機会に調査と対策をしてみます。




チャタリングの調査

スイッチ信号が ”H→L” でウインカーON、再びスイッチ信号 ”H→L” でウインカーOFFにしているので、チャタリングには敏感です。

構成は下図のように内部プルアップにして、スイッチ接点と並列に1uFのコンデンサを置いています。CRの遅延回路を使う事例が良く出ていますが、マイコンまわりが複雑になるのを避けるため、内部プルアップにして左右のウインカー回路だけに適当に選んだ1uFのコンデンサを追加した次第です。


コンデンサをつけないときのスイッチON波形は下図の2例です。時間軸は5ms/divです。

ほぼ20msの間にチャタリングが発生しています。ソフトでのチャタリング対策は10msの間を置いてH/Lの状態を読み込んでいるので、ソフトだけだと誤検出となります。



LTspiceで解析

チャタリングが起きている現象を次の回路で再現してみます。VCC 5V から内部プルアップ抵抗 30kΩ を介して Pro micro 相当のデジタル素子A1に入力します。デジタル素子は 2.1Vから2.6VとPro micro のシュミットトリガー相当のスレッショルドを持たせました。

そして、電圧制御スイッチMYSWへの印可電圧を工夫して、デジタル素子A1への入力が実際に相応のチャタリングを発生するようにしました。




まず、コンデンサをつけないときのシミュレーションです。10msでスイッチONして、60msでOFFにしています。ON/OFFすると、デジタルピンへの入力(青色)がチャタリングを起こし、デジタル素子A1の出力(緑色)もチャタリングします。




一般的なCR一次遅れ回路 $(R=47k\Omega,\ C=0.1 \mu F,\ \tau=4.7ms)$

時定数4.7msの一次遅れでチャタリングが抑えられ、スイッチのON/OFFから約10ms後に出力の切り換わりが発生します。

$R=47k\Omega,\ C=0.1 \mu F,\ \tau=4.7ms$

一次遅れのCR回路を構成するためには、外部プルアップに変更したうえでスイッチごとにその前後に抵抗を置かねばならず、実際に回路を作るとなると大がかりになります。あるいは内部プルアップで使おうとすると、VCC側にスイッチを入れることになり、他のスイッチと違う動作、違う回路構成となってしまいます。

ウインカーの場合はスイッチONでウインカーを点灯し、再びのスイッチONでウインカーを消灯させているので、スイッチOFFでの動作でチャタリングが起きなければ、応答性は問題になりません。

ということで、スイッチと並列にコンデンサを入れる構成にしました。スイッチONでコンデンサーで電圧のチャタリングを吸収しつつ放電されます。スイッチOFFではコンデンサでチャタリングを吸収しつつ電荷がたまり、電圧が上昇します。

今までの仕様:1uFのコンデンサ追加

シミュレーション上では、出力の動作は全く問題がありません。しかし、わずかにチャタリングの影響を受けています。ウインカーが誤動作するのは、この現象のひどいときがあるのだと思います。

$R=1m\Omega,\ C=1 \mu F$

スイッチOFFでの応答は遅れますが、単純にコンデンサの容量アップが対策です。ETS2で実際にウインカーを動作させたところ、違和感はないのでこれを対策とします。

対策仕様:4.7uFのコンデンサに変更


$R=1m\Omega,\ C=4.7 \mu F$

対策効果

5msec/divでの波形を示します。チャタリングがきれいに取り除かれました。


ON直後の1msあたりに変動が見られるので、時間軸を100倍(50us/div)にして観察してみます。

ここまで拡大すると下記の3ケースのように様々な特性を示します。1Vまで下がってから、2~3Vまで持ち上がるケースがあり、Pro maicroのシュミットトリガーに引っかかる心配があります。これについては、ソフトで読み込み間隔を10msにしているので、それで防げるはずです。







Powered by Blogger | Designed by QooQ

keyboard_double_arrow_down

keyboard_double_arrow_down