H8CPUの位相カウンタ+ロータリエンコーダの
サンプルプログラム
Copyright(C)
13May2002
coskx
はじめに
この文書はAKI-H8にて,ロータリエンコーダ(位相カウンタ利用)のサンプルプログラムを提示するものである。
【1】 AKI-H8とのロータリエンコーダと接続
図1.2に示すような光学式ロータリエンコーダは回転角を測定するセンサーで,軸が回転するとパルスが発生する。1回転につき,100パルス程度のものから20000パルス程度の分解能を持つものがある。ロータリエンコーダからのパルス信号はA相B相の2つがあり,これにより,回転方向も判別することが出来るようになっている。H8CPUはA相B相の信号を受け取り,回転方向を判断し,UPカウント・DOWNカウントを行なう24ビットカウンタを持っている。図1.1はH8CPUのITUチャネル2を使用する場合の結線を示している。この状態でのプログラム例を以下に示す。
図1.1 ロータリエンコーダをAKI-H8に接続した例 |
図1.2 光学式エンコーダの例(オムロン) |
【2】 ロータリエンコーダ(インクリメント型光学式エンコーダ)からの信号をH8/3048の持つ位相カウンタで読み取る
ロータリエンコーダ(インクリメント型光学式エンコーダ)からの信号は次のようになっている。正転時と逆転時ではA相B相の信号の位相が異なる。
H8/3048ではITUのチャネル2が位相カウンタとしての動作が出来る。正転時はカウントアップされ,逆転時にはカウントダウンする。
エンコーダ信号の1周期で4つカウントするので,ロータリエンコーダの1回転でのカウントは,仕様の4倍である。(4逓倍カウント)
すなわち,1000pulses/rev(1回転で1000パルス)仕様のロータリエンコーダでは1回転で4000カウントになる。
エンコーダからの信号
H8カウンタの取得とシリアルポートへの出力 |
/********************************************************** |