ロータリーエンコーダーの理解

最終更新日

以前Aliexpressでロータリーエンコーダーモジュールを購入しました。

このモジュールは、プッシュスイッチと右回り、左回りをそれぞれKey,S1,S2 端子でデジタル信号として出力します。温度設定やタイマー設定など、数値設定に便利です。

価格もAliで100円弱と手頃なんで、そのまま使っていてもいいんですが、基板を自作するとなると、できるだけ部品はコンパクトに収めたいので、モジュールをそのまま自作基板上に再現してやりたいと思うようになりました。

回路図は公開されておらず、基板を見て考えろってことですかね

KiCadで回路図を起こしました。

出力のS1を見てみましょう。

R2はプルアップ抵抗です。これがないと回路が浮いた状態になり、ロータリーエンコーダーに触れていない時でもS1からon信号(ArduinoでいうHIGH)が出力されたと見なされてしまいます。

出力のS1は、抵抗(R1)とコンデンサ(C1)の間に挟まれています。

これはRC回路と言って、ごく短時間に発生するon信号(ノイズ)をカットすることが目的です。ロータリーエンコーダーモジュールに限らず、あらゆる物理的スイッチでは、チャタリングや微弱電流の影響で、数ナノ秒単位のon信号が出力されており、意図しない動作の原因となっています。

RC回路があると、このようなノイズはカットしてくれます。詳しくは、Youtubeのイチケンさんの動画で「ローパスフィルター」や以下のページを参考にしてください

とはいっても、RC回路でカットできるノイズはナノ秒単位のものですので、それ以上の持続時間があるノイズは出力してしまいます。ラズパイやArduinoを使う時には、このようなノイズはソフトウェア的に解決します(今回のテーマからは逸れるので割愛)

silklaboMaster