ネット検索でチャタリング対策を色々調べていましたが、実装で挫けそうです。
真っ先に安価なチャタリング対策として考えたのが、PICマイコンの利用でした。
一旦、マイコンで受けてソフトウェアでパルスを作って出力しようかと考えました。
ソフトウェアによる対策ですね。
また本を買ってみました。
後閑さんの本は3冊目です。未だ全部読んでませんけど。
PICマイコンの情報を漁っていると、よく見かける方です。
本にあった回路を有り物の部品で組んでみました。
カソードコモンのフルカラーLEDとタクトスイッチを幾つか、
本に紹介のあったマイコン(PIC16F18313)は持ってなかったので、手持ちのPIC12F1822で代用しています。
同じ8pin、データシートを眺めてみると、メモリーやタイマーの数が違う程度しか違わなそう。
パスコンの容量も0.1㎌しか持ってなかったので、1㎌の代用をしています。
課題のプログラムは、スイッチを押すとカウントアップして変数に格納、
変数により、フルカラーLEDの点滅させる色を、赤→青→緑→赤→・・・
とサイクリックに変更させるものでした。
完全に紹介された回路とは同一では無いですが、時々誤動作して点滅させる色を飛ばします。
試しにコンデンサーを追加してみましたけど改善の気配はありません。
多分ブレッドボード中央に配置したタクトスイッチが宜しくないんだと思います。
使ったことある方は判ると思いますが、タクトスイッチが物理的に浮いてきて、グラグラしちゃうんですよね。
グラグラは無くてもチャタリングは起きると思いますが。
Analog Discovery 2で少し確認しようとしたのですが、繋ぐと回路動作に異常をきたします。
使いこなしは難しいですね。
画面左上に映っているのが電源の変動です。
インパクトがあります。
特に赤LEDが点滅しているときに振幅が顕著です。
因みにこの後OWONのオシロでも見ようとしたのですが、捕まえられず、謎です。
何にしても、測定器を繋ぐと影響があるのは困ります。
タクトスイッチの代わりに、先日のリミットスイッチを利用してみました。
うん、同じように時々バグります。発生頻度も同等。
メカスイッチ入力には何かしら対策が必要そうですね。
ハード対策も幾つか見かけましたが、その中でシュミットトリガーというものが有りました。
PIC12F1822のデータシートを見ると、入力をシュミットトリガーに設定できるようです。
例えば、RA2端子だと下記のように記載があります。
ArduinoやESP32ではシュミットトリガー入力は使ったことがありませんが、あるのかな?
これまでは、ソフトウェアで対策する方法しか見かけませんでした。
今のところ方法は判ってません。MPLAB X IDEで設定できると思うのですけどね。
意外とこういう情報はネットで出てこない。。。
■2024/02/19追記
PIC12F1822のRA2(5番ピン)だけは汎用I/Oとして使用したとき、他と違ってST(シュミットトリガ)だと考え、出力ピンと入れ替えてプログラムし直してみたのですが、
今度は一瞬青が光ってすぐ緑点滅に変わってしまいました。
何度試してみても、試した範囲では必ず青は飛ばされてしまいました。(謎)
シュミットトリガーが効いてないのか?ダブルクリック状態???
さらに悪化したので戻しました。