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訊號一樣。
透過上述規則來判斷正反轉。
如何判斷馬達運轉
要如何判斷馬達運轉呢,透過起始狀態( aState)與最後狀態(aLastState)來做判斷,請見程式流程圖或程式碼說明。
|
程式流程圖與程式碼 |
|
程式流程圖 |
轉動編碼器
最後可以試著轉動編碼器,再觀察序列輸出視窗。
最後的問題補充
1.訊號丟失的問題:當轉速過快,快到晶片的讀取速度或程式掃描的速度追不上,就會發生。
解決方案:使用中斷計數,
請見下一篇
Reference
How Rotary Encoder Works and How To Use It with Arduino
轉貼本文時,需註明來自黑修斯隨手札記原創作者 hughes chen(黑修斯),及附上原文連結,同時 禁止修改,禁止商業使用 。
0 留言
不一定能即時回覆問題,有時間會盡量答覆。