最近使用TT電機做小車,想裝一個碼盤用來測速。但是,直接把碼盤裝在輸出軸又很難做到足夠的分辨率,于是就想到了一個比較冷門的方法,自制了一個碼盤,并且以此為基礎,給一個TT電機加裝一組正交編碼器。
下面,我們開始吧!
1、先說一說正交編碼器
從名字來說,正交編碼器就是編碼器的一種,百科上定義是:正交編碼器一般指增量式編碼器。增量式編碼器是將位移轉換成周期性的電信號,再把這個電信號轉變成計數脈沖,用脈沖的個數表示位移的大小,balabala……
其實,就是把圓周的旋轉運動轉換成2路相位差90度的電平跳變信號,如下圖所示:
上圖中有Z相,相當于是零點,可以消除累計誤差,部分應用中可以不使用。
這種編碼器的優點,就是可以根據AB相位關系推測出轉動方向,而且當圓周柵格數目為n時,跳變信號可以達到4n個,變相提高了分辨率。
說了這么多,接下來我們就用最常見、最便宜的TT減速電機為基礎,使用2對射式光電開關(ITR9608),制作一個帶正交編碼器的電機。
2、準備材料,設計ITR9608原理圖并焊接
首先是TT電機,可以說這是最普遍、最便宜的一款了,這還是我十年前入門玩智能小車時候買的存貨呢~
上圖中箭頭所指的位置是本方案的關鍵,就是要利用這一小點凸起搞點事情。
首先用助焊劑輕輕擦拭一下這段短短的軸,然后準備一個小銅片(沒有銅片,用鋁片也行;再沒有,切一點萬用板也可以),大小控制在10mm邊長,中間鉆一個2mm多一點的孔(盡量居中鉆孔),就像下面這樣:
接下來,使用助焊劑輕輕擦拭銅片,然后將銅片通過小孔安裝在電機軸上,如下圖所示:
接下來是關鍵一步:焊接銅片!使用60W電烙鐵,快速焊接銅片的小孔,使其牢固地連接在電機軸上。對,這里其實是用來粘接碼盤的一個基點,哈哈,所以我說這個凸出的一點點軸是關鍵。
ITR9608是一種常見的對射式光電開關,加兩個電阻就可以使用了,設計了簡單的原理圖:
按圖焊接,需要焊接兩個。
3、設計碼盤組件安裝座,并進行切割加工
這里有個地方需要提示一下:在上圖中,兩個光電開關的安裝角度一定要注意,一個開關對準柵格的時候,另一個開關的位置要剛好被遮擋,這樣就能保證信號“正交”。上圖中使用的是24線碼盤,兩個傳感器夾角67.5度。
4、安裝碼盤組件
由于上面24線碼盤測試中發現會“丟失”信號,分析可能是由于柵格過于密集,后來切割了一個4線的,使用的是普通包裝紙(更輕,避免對電機帶負載能力產生影響)。
5、基于stm32f103c8t6創建工程,編寫驅動程序
這里主要的就是通過cubeMX對定時器模式進行配置,簡單的兩步就可以了,使用TIM2,在combined Channels選擇“Encoder Mode”,如下圖所示:
接下來,配置一下編碼模式,選擇“……TI1 and TI2”,這樣就會上升下降沿都計數,實際脈沖數數值上是柵格的4倍。
其它的再配置一下串口,我準備用串口打印日志,查看脈沖數。
根據配置的引腳,連接編碼器和控制板(分別接PA0和PA1)。
6、測試效果
手動撥動碼盤一周,可以看到串口讀出16個脈沖,反轉的時候讀出的數值是-16,這里沒有寫其它復雜的算法,只是周期性讀取,然后清零。所以不動的時候,讀出來的是0。
7、總結
從硬件上來說,有一點點復雜,需要特別注意碼盤線數不要太多。
從軟件上來說,cubeMX配置還是非常簡單的,也就是讀取很容易。實際使用的時候,需要根據需求對數據進行后處理,以解析出里程、方向等更多信息。
原文標題:從零開始,教你制作TT電機正交編碼器
文章出處:【微信公眾號:嵌入式ARM】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
編碼器
+關注
關注
45文章
3643瀏覽量
134519 -
電機
+關注
關注
142文章
9021瀏覽量
145494 -
電信號
+關注
關注
1文章
817瀏覽量
20583
原文標題:從零開始,教你制作TT電機正交編碼器
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論