RORTRY ENCORDER ON KURUMI

Pocket

入力にローラリーエンコーダを使ってみようと思います。角度検出でなく、数値設定などの入力装置に使用したいので精度は求めず、ソフトウェアで実現しようと思います。
ロータリーエンコーダは以下のものを使用しました。
2色LED付スイッチ付ロータリーエンコーダ(赤・緑)ツマミ付セット
http://akizukidenshi.com/catalog/g/gP-05771/Jpeg
エンコーダ出力の他にLED2色とスイッチ出力が1個ついています。
LEDがカソードコモンになっているのでアノード側に抵抗を介して出力ポートにつなぎます。 カソード側は、GNDにつなぎます。
抵抗は、300Ω使用。
スイッチも同様にLEDのカソードにつながっているので、スイッチの端子を10kΩでプルアップして入力ポートにつなぎます。
このエンコーダは、360度24パルスのエンコーダです。人の手で1周させるのに100msec程度かかると想定すると1パルスの周期が4msecくらいとなります。
1パルス中にAB相の値を4回見ればよいと考え、1msecの割り込みでポート監視しようと思います。

P30 D2 - A相    入力
P31 D4 - B相     入力
P15 D5 - スイッチ 入力

今回は、動作に関係ないのでLEDは制御しませんでした。
基本的な考えは、A相がONの時、B相がOFFからONになった時、+1とし、A相がONの時、B相がONからOFFになった時、-1とします。
今回は、ロータリーで設定した値でPWMの周期を設定し、圧電スピーカから音を出してみました。起動時の音を440Hzに設定し、CW方向に回すとPWM周期が伸びて音が下がり、CCW方向に回すとPWM周期が縮み音が高くなることが確認できました。

Post Tagged with

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください