18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 基礎入門 >> 伺服電機步進電機與控製 >> 正文

編碼器簡單理解_編碼器觸發_編碼器原理

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2023/10/3

今天在修複離職同事遺留下來關(guan) 於(yu) 編碼器的bug,我之前也沒接觸過這玩意,前輩的做法是在定時器中查詢AB相的電平狀態,來判斷當前是正傳(chuan) 還是反正。他搞了個(ge) 定時器1溢出中斷,將32M時鍾進行了64000分頻,131s,信號都漏掉了,我將其改為(wei) 了1600分頻,16位溢出也就是400ms,正常運行(IAR 8.20)。

這個(ge) 問題在最新的IAR(IAR 9.30)不會(hui) 複現,並且不管哪種分頻在最新的IAR可以正常運行。也許還有地方的邏輯沒有看明白,最終還是沒有去改他的分頻。

接下來我們(men) 直接來看關(guan) 於(yu) 編碼器的圖:

編碼器的圖 

編碼器工作原理及如何實現定位控製,秒懂!www.fpxing.com/Article/MEMS/5738.html

控製:

a. 以上連接是大概原理,我們(men) 不看z相,直接看關(guan) 於(yu) AB相正反轉的的控製:

1. 順時針:A相觸發上升沿,那麽(me) 接下來B也觸發上升沿;A相觸發下降沿,B相也觸發下降沿

2. 逆時針:A相觸發上升沿,那麽(me) 接下來B觸發下降沿; A相觸發下降沿,B相觸發上升沿

b. 這樣我就需要設置雙邊沿觸發中斷,但是對於(yu) 一些低端的單片機來講,可能無法做到,這個(ge) 時候就需要用定時器和讀IO的電平狀態來做(前同事之前的做法是將coderScan()放到定時器中斷函數中,為(wei) 了處理幾個(ge) 和時間有關(guan) 的任務,開了4個(ge) 定時器,我們(men) 完全可以使用時間片的方式做)

1.順時針: 如果A相前一刻的電平和當前電平不一樣,並且當前電平為(wei) 低,B相為(wei) 低,則順時針旋轉; 如果B相前一刻的電平和當前電平不一樣,並且當前電平為(wei) 高,A相為(wei) 低。

2. 逆時針: 如果A相前一刻的電平和當前電平不一樣,並且當前電平為(wei) 低,B相為(wei) 高,則逆時針旋轉;如果B相前一刻的電平和當前電平不一樣,並且當前電平為(wei) 高,A相為(wei) 高。

void coderScan() { u8 i; u8 aPin, bPin; for(i=0; i<CODER_NUM; i++) //從(cong) 編碼器1 到 編碼器n輪詢檢測 { aPin = GPIO_ReadInputDataBit(CODER_IO_ARRAY[i].aPin.group, CODER_IO_ARRAY[i].aPin.pin); bPin = GPIO_ReadInputDataBit(CODER_IO_ARRAY[i].bPin.group, CODER_IO_ARRAY[i].bPin.pin); if((_coder[i].aPin != aPin) && (aPin == 0x00)) /* 讀取到的值為(wei) 低電平 */ { if(bPin) // 電壓下降有效 { coderCCW(i);//逆時針旋轉 } else { coderCW(i);//順時針旋轉 } } else if((_coder[i].bPin != bPin) && (bPin == 0x01)) { if(aPin) // 電壓上升有效 { coderCCW(i);//逆時針旋轉 } else { coderCW(i);//順時針旋轉 } } _coder[i].aPin = aPin; _coder[i].bPin = bPin; } }

一般,編碼器旋轉一圈有1024個(ge) 脈衝(chong) ,而編碼器是有格數的(每次哢吧一聲轉動了一格),我數了一下我手上的有30格,因此想要正確表示旋轉,我們(men) 不僅(jin) 要通過電平變化知道方向,還要根據脈衝(chong) 格數來判斷,也就是大概一格34個(ge) 脈衝(chong) ,如果按90%計算脈衝(chong) 個(ge) 數,也就檢測到30個(ge) 脈衝(chong) 觸發一次。

Tags:編碼器,編碼器原理,增量式  
責任編輯:admin
  • 上一個文章:
  • 下一個文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁麵
    下到頁底
    晶體管查詢