2017年3月5日 星期日

旋轉編碼器 KY-040

呢隻野, 真係比佢玩死.  之前做 CNC 手控時, 買左黎玩.

但係寫完程式測試, 一直都唔可以成功量度到轉動既訊號, 經常無故自動亂跳.

最近手痕再攞出黎玩, 見 Youtube 有幾清楚既教學 (https://www.youtube.com/watch?v=J9cDEef0IbQ), 就跟住做一次.
點知, 結果都係一樣.  其實個程式同我之前既做法差唔多.

心諗無理由我買幾人個都係壞既, 而且後尾發現, 原來只要我隻手放迎近佢就會亂跳, 好奇怪.  開始懷疑係線路上有問題.

用另一部機試, 完全正常...omg, 比佢玩左我好耐, 原來係部機既 USB 有問題.
只係知有問題, 唔知乜野問題.
再試, 改下個程式用 TFT 輸出, 外部比電, 完全正常.
之前買左個 USB 数字隔离器 諗住比部 CNC 用, 但最後都唔關事.  手痕就攞出黎試下, 果然係掂.  似係 arduion 受電腦經 USB 干擾....

"肺話"講完, 入正題, 講番點用, 唔係第日又唔記得.

測試程式可以用番上面條 Youtube 片果個, 又或者用我改左經 UsartGPU TFT 輸出既.

接線方法:

UNOKY-040
D3CLK
D4DT
D8SW
5V+
GNDGND

注意, 呢度既 CLK 同 DT, 其實個名有點亂, 應該即係兩個感應器既輸出, pinA 同 pinB.
佢既原理在 Youtube 片講得好清楚了, 主要係靠兩個差 90度既感應, 從而量度出旋轉既步數, 及推算方向 (順時針/逆時針).  所以, 就算 CLK 同 DT 交換插都唔會有問題, 只係可能順/逆既方向調轉左.

程式中以 CLK 去觸發 Interrupt, 所以如果 D3 有其他野用左, 只可以轉用其他有 interrupt 既 pin.
有關 Interrupt pin 既選擇, 可以去 呢度 睇.

測試程式:
KY040.ino   (原網址, 私人收藏)

沒有留言:

張貼留言