传统型编码器测速方案
傳統(tǒng)型編碼器測(cè)速方案
編碼器,經(jīng)常被用來測(cè)量速度或者顯示電機(jī)位置,大致分為絕對(duì)值式編碼器和增量式編碼器,顧名思義,相對(duì)應(yīng)的是產(chǎn)生增量或者絕對(duì)信號(hào)。增量信號(hào)不表示特定位置,只表示位置已經(jīng)更改;絕對(duì)信號(hào)是絕對(duì)值式編碼器對(duì)應(yīng)每個(gè)位置使用不同的“字”,所以絕對(duì)值編碼器即可以顯示所處的位置,也可以計(jì)算相對(duì)應(yīng)的速度。增量編碼器,一般用于測(cè)量速度居多。價(jià)格方面,一般來說增量編碼器也低于絕對(duì)值式編碼器。
此處,我們以增量編碼器為例進(jìn)行相關(guān)說明。
原理:每轉(zhuǎn)過單位的角度就發(fā)出一個(gè)脈沖信號(hào)(或者是正弦信號(hào)),通常為對(duì)外輸出為A相、B相、Z相(有些特殊編碼器會(huì)輸出6相信號(hào):A+、A-、B+、B-、Z+、Z-,正負(fù)信號(hào)為互補(bǔ)相反輸出)。A相和B相其相位相差一個(gè)相位,一般為1/4周期(或者90度)。A相和B相的先后順序決定編碼器是正轉(zhuǎn)或者反轉(zhuǎn)。
A相信號(hào)在前,表示右旋轉(zhuǎn)(從軸側(cè)看)
B相信號(hào)在前,表示左旋轉(zhuǎn)(從軸側(cè)看)
有的編碼器還有一個(gè)Z相,它表示的是0位,即檢測(cè)到0刻線即輸出高電平,也就是給增量式編碼器一個(gè)尋零的功能。
編碼器內(nèi)部電路輸出分集電極開路輸出、互補(bǔ)輸出、電壓輸出、驅(qū)動(dòng)器輸出
編碼器的輸入電壓范圍一般都比較大,從5V到24V不等,此處假設(shè)輸入電壓為12V,stm32單片機(jī)的IO口一般為3V,5 V tolerant。編碼器選擇集電極開路輸出,上拉電阻到3V(或者可以配置GPIO管腳為上拉模式,省去外部上拉),或者使用互補(bǔ)輸出,調(diào)整輸入電壓為5V或調(diào)整輸出電壓幅值。本試驗(yàn)以集電極開路輸出為例。
1.2.2軟件實(shí)現(xiàn)方式(本實(shí)驗(yàn)以野火指南者開發(fā)板stm32f103VET6為例)
STM32的定時(shí)器TIM1,2,3,5,8中有專門的編碼器模式,省去了我們讀脈沖和計(jì)數(shù)的操作。而且配置全面。
可以配置:
本例以編碼器模式為例來測(cè)試。
具體配置如下:
下載調(diào)試為SW模式。
時(shí)鐘選擇外部高速晶體震蕩時(shí)鐘。
使能TIM8為Encoder Mode,顯示通道1和通道2為灰色,表示這兩個(gè)通道已經(jīng)被使用為編碼器模式了。
具體配置如下,重載值16bits,即計(jì)數(shù)器數(shù)到多少就清零,設(shè)置為0xffff ,Encoder Mode選擇Encoder Mode TI1 and TI2,表示在A相和B相的上升和下降沿都會(huì)計(jì)數(shù),故最終計(jì)算的數(shù)據(jù)應(yīng)該是計(jì)數(shù)值除以4。輸入濾波選擇15,為最大值,濾除干擾信號(hào)。
GPIO口模式選擇為輸入模式,Pull-up上拉,此處主要是為了兼容開漏模式的編碼器輸出(或者此處不配置為上拉模式,硬件上做上拉處理)配置如下
增開TIM6,配置如下,系統(tǒng)主頻為72M的配置,并使能中斷。
配置串口1用于打印輸出數(shù)據(jù)。配置如下:
系統(tǒng)72M時(shí)鐘配置如下。
此處以TS=1秒定時(shí)為例,每隔1秒清除編碼器所計(jì)數(shù)的數(shù)據(jù)。
CaptureNumber為4倍的編碼器的PWM數(shù)值。主程序串口輸出方向和上1秒計(jì)數(shù)值。
Stm32f103的Counter Period為16bits數(shù)據(jù),最大為0xffff。在不清除CNT情況下,
左轉(zhuǎn)和右轉(zhuǎn)編碼器,計(jì)數(shù)方式不同。
左轉(zhuǎn) 從0x0000~0xffff,
右轉(zhuǎn) 從0xffff~0x0000
編碼器一圈劃分600格。
故:編碼器最快速度為TS情況下把計(jì)數(shù)器填滿。其速度為大:2^152PI /(6004TS)
最小速度為,當(dāng)編碼器在TS時(shí)間內(nèi),最小要跑1個(gè)格:2PI/(600TS)
當(dāng)TS為1S,速度范圍為:0.0104rad/S~81.64rad/S
按照目前拉絲速度換算成角速度為15.33 rad/S,滿足要求
如要測(cè)試更快速度,則把TS,即取樣時(shí)間縮小。
硬件連接:
A相:接PC6
B相:接PC7
串口使用串口PA9、PA10
備注:筆者是做硬件設(shè)計(jì)的,由于工作需求才研究編碼器的使用。文中難免有不合理的地方,還請(qǐng)見諒,且示例代碼也僅僅跑了這一個(gè)任務(wù),實(shí)際的應(yīng)用比這個(gè)復(fù)雜的多,筆者也不懂更深入的編碼。
總結(jié)
以上是生活随笔為你收集整理的传统型编码器测速方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvisualvm启动提示“无法监视本地
- 下一篇: 录音转文字免费的软件有哪些?看完这篇文章