title

ロータリーエンコーダーのA相B相信号からCW/CCW信号に変換する その1

マイコンソフトを使わないで汎用ロジックICを使う

ロータリーエンコーダー画像

ロータリーエンコーダには停止中でも絶対位置がわかるアブソリュート型や相対的に回転量だけがわかるインクリメント型があります。 インクリメント型が広く出回っていてA相B相のパルス信号が出力されます。パルスはただの回転に応じたパルス列ですので回転量はわかりますが 回転方向は解りません。この2相のパルス信号は互いに回転に対する位置が少し(基本は90度)ずれています。 この差を取り出して回転方向を知るための回路です。この章ではマイコンを使わない昔ながらの汎用ロジックICを使ってみます。別の章で紹介する マイコンソフトによるものと比べる配線が面倒です。

まず回路図です

1

R1,R2はプルアップ抵抗です。写真右側などつまみの回転検出するタイプは接点式になっているようです。プルアップしないと 信号が出てきません。また手持ちのものは定格電流が0.5mAですので5Vで使用する場合は10KΩが推奨されています。74HC14のシュミットトリガ で入力段の抵抗キャパシターの組み合わせにより接点入力のチャタリング除けにしています。キャパシター容量1000pはただのオマジナイ程度 ですのでメーカー推奨0.01uFが良いでしょう。

2

次段の74HC74が主役です。2つのフリップフロップ回路を組み合わせると出力段の片側(5pinか9pin)にCW、反対側にCCWが現れます。 余った7414のバッファを通してCN2に出力されます。出力はCW専用CCW専用の2本になります。

3

用途によっては方向を持たないパルス列と方向専用の出力がほしいことがありますがCN3で取り出せます。

CH1およびCH2は74HC14の入力波形、CH3及びCH4はCN2の出力波形です。写真1は停止状態から右回し、2は左回しです。右回しではCH3だけから、 左回しではCH4からだけ出力があるのがわかります。

下はCN3の出力です。CH3が出力パルス列、CH4はCW/CCWの方向出力です。パルス列がアクティブローになっていますので気になるようでしたら 余ったインバーターを入れましょう。

汎用ロジックICについて

何を今更という思いのロジック回路です。CPU:Z80ではソフト対応していると肝心の本体プログラムの速度に支障をきたすので、面倒ですがこんな回路を使用していました。手回しのエンコーダーでは問題ないでしょうが表題写真左のようなものですと数キロHz以上になりますので非力なCPUでのソフト処理は厳禁でした。

74(HC)14

シュミットトリガーのインバーターです。手回しエンコーダーはメカ接点ですのでチャタリング防止にC・Rと組み合わせて使用します。実際はチャタリングは殆どありませんでした。チャタリングがある場合は1000pのキャパシターを0.01~0.1uに変更してください。光学式エンコーダーではアンプで整形されたきれいなパルスが出てきますので不要です。4000シリーズの4584とpin配置も同じですのでそのまま置き換えできます。この記事の実験も4584で行いました。

74(HC)74

4000シリーズの4013と同様の機能だったと思いますがpin配置は異なったと思います。D-FF(フリップフロップ)回路が2組入っていて、その2組を組み合わせてCwとCCWにデコードします。このD-FF回路を使用した場合は上記シュミットトリガーは原理上(ほぼ)不要です。仮にチャタリングが起きても立ち上がり(もしくは立ち下がり)エッジでD-FFは反転記憶しており逆相のエッジが来るまでは何回チャタリングが起きてもパルス数のカウントは変わりません。

74(HC)02

4000シリーズは何番だったか記憶にありません。NOR型が4組入っています。2組を組み合わせRSフリップフロップ回路を作ります。

残りの1組でパルス列を出力します。これがなくてもCN2のCWかCCWの何方かから取り出せば(ほぼ)同じ結果になります。

次はMCUを使う場合。