Arduino | 旋轉編碼器模組使用(0)---問題分析


Arduino | 旋轉編碼器模組使用(0)---問題分析

關鍵字:arduino旋轉編碼器使用、arduino旋轉編碼器模組

旋轉編碼器之美麗的邂逅

旋轉編碼器要如何使用呢?
黑修斯購買的旋轉編碼器廠商提供的程式碼,似乎有誤,實在難以看出如何使用,而在網路相關販賣旋轉編碼器的廠商,清一色提供的範例程式碼都是一樣的,既然都是一樣的,因為有錯誤,所以只能靠自己解決問題。

疑問

明明只有五個Pin(CLK、DT、SW、+、GND),可是廠商提供的範例程式,竟然是有七個Pin的程式碼,基於這樣的好奇心,驅使著黑修斯想要了解如何使用這顆旋轉編碼器。
在黑修斯的認知中,一般馬達旋轉編碼器,常用的相位標示為 A相 、 B相,而這顆旋轉編碼器卻是CLK、DT。
一般旋轉編碼器相位Arduino旋轉編碼器模組
A相CLK
B相DT

廠商提供的資料,只有一個線索為"直接引出CLK就可以知道轉了幾圈"。
一般的馬達旋轉編碼器通常為A相、B相,有的甚至有每圈有個對正I相(或Z相),那這個旋轉編碼器上的CLK與DT是什麼意思?

進行實驗

黑修斯藉由邏輯分析儀分析CLK與DT,在旋轉時的訊號中發現:
  1. 通電,未旋轉時,CLK與DT都是高電位。 
  2. 通電,旋轉時,波形如下圖所示,CLK與DT的波型各差90度,而且是觸發時是低電位。
(註:波型顯示沒有很平均,因為我是用手轉的)



實驗結論

所以由上述可知,CLK與DT的運作方式,就如同一般馬達旋轉編碼器A相、B相的運作方式。
而根據Datasheet所提供的資訊,此旋轉編碼器旋轉一圈會有20個Pulse,黑修斯透過Arduino計算的結果,確實是一圈有20個Pluse。

盡信書,不如無書

此次實驗,驗證了一句話「盡信書,不如無書」,有時廠商提供的Datasheet或範例資料,不一定全是正確的。

旋轉編碼器腳位說明

腳位說明
CLK相當於A相
DT相當於B相
SW編碼器按鈕腳位(編碼器上有開關的功能,可以按壓)
+正電源
GND接地
轉貼本文時,需註明來自黑修斯隨手札記原創作者 hughes chen(黑修斯),及附上原文連結,同時 禁止修改,禁止商業使用 。

張貼留言

0 留言