Arduino | 旋轉編碼器模組使用(1)


Arduino | 旋轉編碼器模組使用(1)

關鍵字:arduino旋轉編碼器使用、arduino旋轉編碼器模組
繼上一篇<Arduino | 旋轉編碼器模組使用(0)---問題分析>後,這一篇將介紹旋轉編碼器模組的使用心得與筆記。
如果只是需要測試程式碼,請直接往下拉,或是到黑修斯的GitHub取用。

腳位說明

腳位說明
CLK相當於A相
DT相當於B相
SW編碼器按鈕腳位(編碼器上有開關的功能,可以按壓)
+正電源
GND接地

腳位觸發變化

通電後,CLK、DT、SW都是高電位(HIGH),當觸發時會變低電位(LOW),而SW(按鈕)被按下時變為低電位(LOW)。

程式接腳

腳位
連接Arduino開發板腳位
CLK<--->Arduino Pin6
DT<--->Arduino Pin7
SW<--->本程式不使用
+<--->正電源 5V or 3.3V
GND<--->接地

程式碼



程式流程圖與動作說明

從下圖得知,A相、B相的動作原理(A相為藍色,B相為綠色)。
正轉時 ,A跟B訊號為相反。
反轉時,A跟B訊號一樣。
透過上述規則來判斷正反轉。
圖片來源:howtomechatronics


如何判斷馬達運轉

要如何判斷馬達運轉呢,透過起始狀態( aState)與最後狀態(aLastState)來做判斷,請見程式流程圖或程式碼說明。

程式流程圖與程式碼

程式流程圖

轉動編碼器

最後可以試著轉動編碼器,再觀察序列輸出視窗。


最後的問題補充

1.訊號丟失的問題:當轉速過快,快到晶片的讀取速度或程式掃描的速度追不上,就會發生。
解決方案:使用中斷計數,請見下一篇

Reference 

How Rotary Encoder Works and How To Use It with Arduino

轉貼本文時,需註明來自黑修斯隨手札記原創作者 hughes chen(黑修斯),及附上原文連結,同時 禁止修改,禁止商業使用 。  

張貼留言

0 留言