Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

ロータリー・エンコーダ

秋月でだいぶ前に買ったロータリー・エンコーダを使ってみる。
ALPSのEC12E2420801というものだ。
まずは配線方法を見る。


ALPSのサイトにある上の図から、真ん中をGNDへ、左右がAとBでプルアップが必要なことがわかる。
回転させると下の図のようにHighとLowが交互に出て、しかもAとBでずれるようになっている。

これを0と1に直すと下のような表になる。

右回転なのか左回転なのかを読み取るために、ひとつ前の状態とセットで回転をチェックする必要がある。
これを表の上下の矢印で示してある。
表の上の矢印は右回転、表の下の矢印は左回転を意味している。
例えば現在(A,B)=(1,1)だったとしても、さっきまで(1,0)だったなら左回転だし、さっきまで(0,1)だったなら右回転だ。

そこで、下の図のように4つの値を横に並べて数値にして扱うことにする。

この例では、現在(0,1)でさっきまで(0,0)だったのを0001として2進法で1とする。
下の図の場合が右回転なら 1000 = 8 となり、左回転なら0010 = 4 とする。

この要領ですべてのパターンを調べると、右回りをあらわすのは、8, 1, 7, 14 で、左回りは、2, 11, 13 ,4 となる。
これをそのまま配列の番地とし、右回りなら1、左回りなら-1、それ以外のあいている配列の要素には0を入れて、

というような感じのテーブルを用意しておくことにする。

というような方法が巷で良く行われている方法のようだ。

このエントリーをはてなブックマークに追加

Posted under: 電子工作その他


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.