ロータリーエンコーダーのチャタリング波形
2022年8月24日:パルスジェネレータを作ってみた:箱に入れた
このスケッチ、
・ダウンロード - p_gen16c1.txt
では、ロータリーエンコーダの計数をINT0割り込みではなく
タイマー割り込みを使った周期的処理でチャタリングを
除去してA相の↓エッジを検出するようにしました。
そして、CRによるフィルタが不要になったので、エンコーダ接点に
入れたコンデンサを取り外してしまいました。
※タイマー処理によるチャタリング除去の考え方は
ここを参照。
・2020年9月15日:今度はチャタリング除去、その考え方
・2020年9月16日:ロータリーエンコーダーの2相パルスをタイマー割り込みで
コンデンサ無しだと、どんなチャタリングが出るのか、
オシロで観察しました。
デジタルオシロの無限残光モードが役立ちます。
こんなパルスが入ってきます。
0.5ms(2kHz)ごとにそのH/Lを記録して、HあるいはLが
4回以上連続してたらその信号は安定。
途中で変化があればチャタリングと判断します。
ですので、高速2相パルスは検出できません。
「クリック有り」ロータリーエンコーダ向けの
処理です。
ch3の波形が、A相信号のチャタリングを除去後、
A相↓エッジを検出して、計数処理をしているタイミングです。
その後に、新カウント値による液晶表示が始まっています。
周期や周波数データの液晶表示に10ms近くかかるので
loop()内でのA/B相処理は間に合いません。
割り込みでしか追いつかないのです。
けっこうなチャタリングが見えています。
全部のon/offでこれが発生するのではなく、たまにひどいのが出る
という感覚です。
そして、その場所(回転位置)は一定ではありません。
どこで出るかわからんなぁ~です。
| 固定リンク
「Arduino」カテゴリの記事
- 1/nカウント方式とDDS方式の2相パルス発生回路(2024.10.13)
- おっと。map関数の計算桁に注意(2024.10.06)
- DDS方式の2相パルス発生回路、周波数スキャン機能を付ける(2024.10.05)
- 1クロックでも速くしたい 割込を「ISR_NAKED」で(2024.09.30)
- 1クロックでも速くしたい DDS方式の2相パルス発生器(2024.09.27)
「電子部品」カテゴリの記事
- 2.0mmピッチの電線対電線接続用コネクタ(2024.12.11)
- やめてくれ~ モノタロウの個包装(2024.12.06)
- 不安定なDCプラグ(2024.10.11)
- この「テープ」は何という名前?(2024.10.01)
- シリコン樹脂とリミットスイッチの接点(2024.09.26)
「割り込み処理」カテゴリの記事
- 1クロックでも速くしたい 割込を「ISR_NAKED」で(2024.09.30)
- 1クロックでも速くしたい DDS方式の2相パルス発生器(2024.09.27)
- 最適化処理のせいで悩んだぞ 呪文volatile再び(2024.06.06)
- I2C液晶のアクセス、割り込みで処理しないようにすると(2024.04.12)
- I2C液晶のアクセス、割り込み処理で遅れる原因らしきもの(2024.04.07)
コメント