旋轉編碼器的一種編程思路

旋轉編碼器的一種編程思路

旋轉編碼器

旋轉編碼器常應用於角度定位或測量時,通常有A、B、Z三相輸出。A相和B相輸出佔空比為50%且相位差為90度的方波。當編碼器正向旋轉時,A相比B相超前四分之一個週期;當編碼器反向旋轉時,B相比A相超前四分之一個週期。編碼器每轉一週,Z相輸出一個脈衝。由於編碼器每轉一週,A相和B相輸出固定數目的脈衝,則A相或B相每輸出一個脈衝,表示編碼器旋轉了一個固定的角度。當Z相輸出一個脈衝時,表示編碼器旋轉了一週。因此旋轉編碼器可以測量角位移及位移方向。

當然,不同型號的旋轉編碼器,其輸出脈衝的相數也不同,有的旋轉編碼器輸出A、B、Z三相脈衝,有的只有A、B相兩相,最簡單的只有A相。

A和B輸出波形為

旋轉編碼器的一種編程思路

通過輸出波形圖可知每個運動週期的時序為

旋轉編碼器的一種編程思路

靜止狀態為11或00

單片機可利用定時器中斷來檢測A和B的狀態,中斷時間在5~20ms之間均可。

當檢測到A^B= 0時,表示為靜止狀態,記下A和B的狀態。

當檢測到A^B= 1時,表示有轉動,讀取AB的狀態,如果AB是從11到01或者是

從00到10則為正轉,反之如果AB是從11到10或者是從00到01則為反轉。

此方法比較簡單可靠,可以檢測轉動一格又可以檢測快速轉動。


分享到:


相關文章: