マウスボタンのチャタリングへの対処


マウスのボタンをシングルクリックしたにもかかわらず,PC側はダブルクリックしたものとして動作してしまうことがあります.マウスのボタン部分に使用されているマイクロスイッチなどの機械的接点を持つスイッチでは,スイッチオン時に,接点が高速に何度かオンオフを繰り返すチャタリングという現象が発生します(注1).PC側がこれをスイッチが何度か押されたものと誤認識することを防ぐため,PC内部にCR積分回路が用意されています(注2).しかしスイッチの接点が劣化すると,チャタリングの発生する期間が長くなり,PC内部に用意されているCR積分回路ではチャタリングを吸収し切れず,結果シングルクリックがダブルクリックとして誤検出されてしまうということが起こります.
 注1:これは機械的接点の特性であり,異常な現象ではありません.非常に短いパルスが短い間隔で続けざまに発生します.このパルスの数・持続時間・発生間隔・発生期間は一定ではなく,毎回変化します.
 注2:PC内部の積分回路の時定数の値は直接確認していませんが,PC-9801VXで,マウスのI/Oポートである7FD9Hに入力させたデューティ比0.5の矩形波パルス列の立ち上がり検出を行った場合,パルス列の周波数が333.3Hzまでは追従を確認しましたが,500Hzでは取りこぼしが生じました(どるこむの過去ログ,[8561] 旧98のマウスポートの処理速度について を参照).

チャタリングへの対処にはソフトウェアを用いる方法もありますが,ハードウェア的な対処方法には次の二つがあります.いずれもハンダゴテを使った作業になりますが,この種の作業に不慣れな人でも,それほど難しくはないでしょう.

(1) スイッチの交換
根本的な対処法です.マウスのボタン部分にはOMRON製D2F-01Fおよびその互換品が使用されている場合が多いようですが,これを新しいもの(OMRON CHINA製D2FC-F-7Nが比較的入手し易いようです),あるいは他のマウスから取り外した同種のスイッチに付け替えます.

 @ コテ先を十分に加熱したハンダゴテを用いる
 A スイッチを取り外す際には,スイッチの端子を基板に固定している半田にコテ先の熱が効果的に伝わるようにし,半田が素早くかつよく溶けるようにする.ハンダ吸取線を用いる場合も同様
 B ハンダ吸取線を使わない場合には,溶けた半田をハンダ吸取機を使って素早く一気に除去する
等が作業のポイントでしょう.

コテ先が十分に加熱されていない状態で作業したり,スイッチの端子と基板の穴の周りのパターンの一部とが半田でくっついている状態でスイッチを無理に引き抜こうとすると,パターン剥離を起こしてしまうことがあります.基板の穴の周りのパターンは,ハンダづけされることでスイッチの端子を基板に固定する役目も果たしていますので,これが剥がれてしまうとスイッチの固定に問題が出ます.

(2) コンデンサの追加
根本的な解決法ではなく応急処置的な対処法ですが,マイクロスイッチの端子間に0.1μF程度のセラミックコンデンサを追加するだけですので,作業は非常に簡単です.ハンダづけの前に,コンデンサの足の部分に予備ハンダをしておくとよいでしょう.

0.1μFというコンデンサの容量は固定したものではなく,実際に取り付けた上で動作を確認し,必要であればより大きな容量のものに交換する必要があります.ただしあまり大きな容量のものは不適当です.

しかしこの対処法では,遅かれ早かれ症状が再発します.筆者のところでは0.1μFのものを取り付けて数年程度保った例がありますが,ウェブ上では,1ヶ月程度で再発したとの報告もあります.再発時には,コンデンサの追加増設,あるいは容量の大きなコンデンサへの交換でまたしばらくの間乗り切ることができますが,スペースの都合で,あまり多くの個数を取り付けることはできません.そのマウスを長く使うつもりならば,やはりスイッチ自体を交換してしまうことが一番です.

下図はPC-9801-129(MATE-X等に付属していたもの)のマイクロスイッチの端子間に,ジャンク基板からニッパで切り離した0.1μFのセラミックコンデンサを2個取り付けた状態です.



なお使用時間の長いマウスでは,マイクロスイッチの押下部分と接触するボタン裏の突起部に凹みができてしまい,そのためボタンを強く押さなければクリックがPCに検出されなくなることがあります.この場合にはボタン裏の突起部にプラスチック板を貼り付けるなどの工作が必要になります.
※Kuniさんより,この種の補修にはプラリペアが便利とのコメントをいただきました.


トップページ