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,在旋轉時的訊號中發現:- 通電,未旋轉時,CLK與DT都是高電位。
- 通電,旋轉時,波形如下圖所示,CLK與DT的波型各差90度,而且是觸發時是低電位。
(註:波型顯示沒有很平均,因為我是用手轉的)
而根據Datasheet所提供的資訊,此旋轉編碼器旋轉一圈會有20個Pulse,黑修斯透過Arduino計算的結果,確實是一圈有20個Pluse。
實驗結論
所以由上述可知,CLK與DT的運作方式,就如同一般馬達旋轉編碼器A相、B相的運作方式。而根據Datasheet所提供的資訊,此旋轉編碼器旋轉一圈會有20個Pulse,黑修斯透過Arduino計算的結果,確實是一圈有20個Pluse。
盡信書,不如無書
此次實驗,驗證了一句話「盡信書,不如無書」,有時廠商提供的Datasheet或範例資料,不一定全是正確的。旋轉編碼器腳位說明
腳位 | 說明 |
CLK | 相當於A相 |
DT | 相當於B相 |
SW | 編碼器按鈕腳位(編碼器上有開關的功能,可以按壓) |
+ | 正電源 |
GND | 接地 |
轉貼本文時,需註明來自黑修斯隨手札記原創作者 hughes chen(黑修斯),及附上原文連結,同時 禁止修改,禁止商業使用 。
0 留言
不一定能即時回覆問題,有時間會盡量答覆。