日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

传统型编码器测速方案

發(fā)布時(shí)間:2024/3/24 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 传统型编码器测速方案 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

傳統(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ù)的操作。而且配置全面。
可以配置:

  • 計(jì)數(shù)方式(counter mode):即向上計(jì)數(shù)還是向下計(jì)數(shù),不過使用編碼器都是記錄轉(zhuǎn)的角度,讀取計(jì)數(shù)器從0開始的計(jì)數(shù),所以一般來說都是向上計(jì)數(shù)。
  • 編碼器(encoder mode):Tl1是只檢測(cè)上升沿,Tl2只檢測(cè)下降沿。Tl1 and Tl2是上下沿都檢測(cè),那么脈沖數(shù)將是只檢測(cè)一個(gè)沿的兩倍。
    本例以編碼器模式為例來測(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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。