![]() |
發布時間: 2022-7-3 19:03
正文摘要:如圖,兩個霍爾傳感器并排放置,想利用兩個霍爾中斷下降沿觸發來判斷正反轉,這樣就有四種狀態分別是00 01 11 10 ,利用四個狀態的順序理論上可以判斷正反轉。 求大佬教學,四種狀態的判別程序是應該在 ... |
伊小于 發表于 2024-2-20 09:51 http://www.zg4o1577.cn/bbs/dpj-36467-1.html |
大佬,就是兩個霍爾采集電機的正反轉方向的問題,我用外部中斷采集狀態發現會掉狀態,我想請教下你是如何實現的 |
理論上出現 11 01 00 10 11是可以的 實際中可以出現 11 10 00 10 11或11 01 11 10 11就不行 |
兩個霍爾裝在一起,一個磁鐵來觸發,形成正交方式信號,很容易判斷方向 |
學到了 確實和編碼器的電平讀取有點像 |
很簡單,以11為標準,當檢測到11時開始計時,看看哪個霍爾先變0,電機的方向就是從先變0霍爾到后變0霍爾。 |
如果磁鐵大小合適,讓兩個霍爾形成正交編碼器,那么以任意一個霍爾作為基準,就叫A吧,當A翻轉的時候檢查B的狀態,如果是高就是正轉,如果B為低則為反轉,and vice versa. |
保證任何方向兩個霍爾先后觸發的情況下,可參考EC11編碼器的識別方法。 |
daemondong 發表于 2022-7-4 09:54 代碼少了一段
|
你這個就是編碼器,可以參考ec11的代碼。
http://www.zg4o1577.cn/bbs/dpj-221719-1.html EC11增量型脈沖數字電位器單片機驅動程序 |
本帖最后由 daemondong 于 2022-7-4 09:57 編輯 直接上代碼,希望你能看明白。
|
你可以用一個定時中斷。 這個定時的時長保證, 每次中斷時間內, 霍爾不可能發生兩次變化。也就是最高轉速下 霍爾也不可能在一個定時周期內發生兩次變化。 這樣讀前后的兩個霍爾電平 判斷順序就可以知道正反轉了。 |
本帖最后由 pcbboy 于 2022-7-4 10:14 編輯 某個中斷觸發后標志位先=1,觸發時間在前面的是一個方向,觸發時間在后面的是一另個方向, |
Hephaestus 發表于 2022-7-4 06:08 主要是我的磁鐵不是勻速轉動,所以時間差對我來說有點困難 |
一個霍爾翻轉時間是一圈時間,兩個霍爾翻轉時間差小和大表示正轉反轉。 |