時間:2018-06-08 16:21:57來源:網絡轉載
如圖,STM32的每個TIMER都有正交編碼器輸入接口,TI1,TI2經過輸入濾波,邊沿檢測產生TI1FP1,TI2FP2接到編碼器模塊,通過配置編碼器的工作模式,即可以對編碼器進行正向/反向計數。
如下圖,編碼器使用了A,B兩相信號,但是我只需要對TI1信號進行計數(第一行),我也是剛發現了這個錯誤,原來對兩個信號都計數,導致碼盤轉一周得到不止100個脈沖(100線的光電碼盤)。通過STM32的編碼器模塊比較兩想的電平信號就可以很容易地計算出編碼器的運行情況了。
下面是我調試OK的代碼:
另外一個值得注意的問題是,STM32的定時器是16位的,意思是只能計數到65535,有兩種方法,一是采用鏈式的方式用兩個定時器將16位擴展為32位,還有一種簡單的方法就是開啟定時器的溢出中斷,每中斷一次就代表編碼器運轉了特定的角度。
比如編碼器是400線的,將ARR寄存器設置為400,每溢出中斷一次就代表電機轉了一圈,以此類推。
另外,關于輸入脈沖的檢測,其實是類似的,只不過在STM32內部是專門用了一個外部觸發模塊來實現的,如圖一中紫色框的標注,編碼器模塊應該是在這個模塊上的升級,下面是配置代碼:
標簽:
上一篇:壓力傳感器在工業中的應用及原理
下一篇:現場總線控制系統在煤礦中的...
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-06-16
2025-06-09
2025-06-06
2025-05-19
2025-04-30
2025-04-11