91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于STM32的正交編碼器驅動電機設計

西西 ? 來源:博客園 ? 作者:鴿紙 ? 2020-09-10 16:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1。編碼器原理

什么是正交?如果兩個信號相位相差90度,則這兩個信號稱為正交。由于兩個信號相差90度,因此可以根據兩個信號哪個先哪個后來判斷方向。

這里使用了TI12模式,例如當T1上升沿,T2在低電平時;T1下降沿,T2在高電平時,向上計數,這樣的好處是當有毛刺產生的時候,會自動+1 -1過濾掉毛刺。

2。編碼器的中斷

由于編碼器是基于定時器的,所以編碼器的中斷實際上就是定時器的中斷。也就是說定時器是每隔一定時間加一個數(或減一個數 ),當數到達預設值時就產生中斷,而編碼器是每一個有效脈沖就加一個數(或減一個數 ),當數到達預設值時就產生中斷。若預設值為1000則編碼器與定時器中斷不同的是,當編碼器反轉時值到達999產生一次中斷,而當編碼器正轉到達0時同 樣產生一次中斷。在硬件上這兩個中斷是沒法區(qū)分的,這也就造成了有種情況的誤判。

3。STM32編碼器沒有考慮的情況

想象一下,如果編碼器的預設值為1000,當某次我們使得編碼器正轉產生中斷后,立即反轉則又該怎么辦呢?根據上面的說法,這時候會產生兩次一樣的中斷。 如果在算法上沒有處理的話,極有可能認為是行走了兩次正向。但實際上并沒有。所以這個時候必須結合方向來判斷行走的情況(判斷方向使用的是DIR寄存器 位)或者在產生中斷后讀一次count寄存器位(看看是999還是0,以此來判斷當前的方向)。只有上一次為正且這一次同樣為正,距離才是相加的。

4。STM32f1系列定時器16位的問題

我用STM32的定時器3工作于編碼器方式,可以正常得到編碼器位置,但由于現(xiàn)在只有16位計數,位數不夠,我想擴展到32位,可以先用定時器內部連接,將定時器3 的溢出送到定時器2,用定時器2做高位,在正轉的時候正常,但反向的時候出錯。換了個思路,做個每10ms產生一次的中斷,在中斷中調用下面的代碼,下述代碼中MAX_COUNT是 比 10ms內可能出現(xiàn)的計數最大值還要大的值,ENCODER_TIM_PERIOD是定時器的period值,最好比MAX_COUNT大,然后定義一個32位的有符號變量,如currentCount,然后每隔10ms執(zhí)行一次currentCount += Enc_GetCount();只需要去讀取currentCount的值就可以得到位移信息了。

s16 Enc_GetCount(void)

{

static u16 lastCount = 0;

u16 curCount = ENCODER_TIM-》CNT;

s32 dAngle = curCount - lastCount;

if(dAngle 》= MAX_COUNT){

dAngle -= ENCODER_TIM_PERIOD;

}else if(dAngle 《 -MAX_COUNT){

dAngle += ENCODER_TIM_PERIOD;

}

lastCount = curCount;

return (s16)dAngle;

}

5。其它一些得到的信息

1.編碼器有個轉速上限,超過這個上限是不能正常工作的,這個是硬件的限制,原則上線數越多轉速就越低,這點在選型時要注意,編碼器的輸出一般是開漏的,所以單片機的io一定要上拉輸入狀態(tài)。

2.定時器初始化好以后,任何時候CNT寄存器的值就是編碼器的位置信息,正轉他會加反轉他會減這部分是不需要軟件干預的,初始化時給的TIM_Period 值應該是碼盤整圈的刻度值,在減溢出會自動修正為這個數。加超過此數值就回0.

3.如果要擴展成多圈計數需要溢出中斷,程序上圈計數加減方向位就行了。

4.每個定時器的輸入腳可以通過軟件設定濾波

5.應用中如果沒有絕對位置信號或者初始化完成后還沒有收到絕對位置信號前的計數只能是相對計數。收到絕對位置信號后重新修改一次CNT的值就行了。碼盤一般都有零位置信號,結合到定時器捕獲輸入就行。上電以后要往返運動一下找到這個位置。

6.即便有濾波計數值偶爾也會有出錯誤的情況,一圈多計一個或少計一個數都是很正常的特別是轉速比較高的時候尤其明顯,有個絕對位置信號做修正是很有必要的。絕對位置信號不需要一定在零位置點,收到這個信號就將CNT修正為一個固定的數值即可。

7.開啟定時器的輸入中斷可以達到每個步計數都作處理的效果,但是高速運轉的時候你可能處理不過來.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    45

    文章

    3957

    瀏覽量

    142732
  • STM32
    +關注

    關注

    2310

    文章

    11164

    瀏覽量

    373558
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    123742
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    增量正交編碼器:工業(yè)自動化的“精密導航儀”

    ——增量正交編碼器。它如同設備的“神經末梢”,將機械運動轉化為可量化的數字信號,為工業(yè)自動化構建起精密的感知網絡。 正交信號:破解旋轉方向的“密碼本” 貝弗德增量正交
    的頭像 發(fā)表于 02-05 08:39 ?130次閱讀

    解鎖精準運動控制密碼:增量式正交編碼器的卓越之選

    在工業(yè)自動化、機器人技術、智能制造等蓬勃發(fā)展的時代,精準的運動控制與位置檢測成為設備高效運行的核心要素。而增量式正交編碼器,宛如一位默默耕耘的幕后英雄,以其卓越的性能和可靠的表現(xiàn),為各類設備的穩(wěn)定運行提供了堅實保障。
    的頭像 發(fā)表于 02-01 11:01 ?627次閱讀

    MY RIO采集編碼器問題

    準備用MY RIO做實時控制,需要采集正交AB編碼器的數據,有沒有做過類似的項目大神指導一下。
    發(fā)表于 01-19 17:51

    Vishay RAIK060 旋轉絕對感應套件編碼器技術解析

    Vishay RAIK060旋轉絕對電感套件編碼器專門用于電機驅動、機器人位置和具有精確定位的工業(yè)運動控制。這些編碼器通過LED狀態(tài)顏色輕松組裝,對外部磁場、電場和溫度不敏感。RAIK
    的頭像 發(fā)表于 11-11 11:31 ?946次閱讀
    Vishay RAIK060 旋轉絕對感應套件<b class='flag-5'>編碼器</b>技術解析

    RVMCU課堂「17」: 手把手教你玩轉RVSTAR—正交編碼器接口篇

    ?上期內容我們介紹了定時的PWM輸出功能,本期內容來介紹一下定時正交譯碼功能(編碼器接口)。正交
    發(fā)表于 10-31 08:21

    NI數采卡 差分AB正交編碼器信號采集

    請教一下各位,如何使用NI數采卡采集差分輸入AB正交編碼器角度信號。 PCIE-6320/6340 usb6210/6421 在不增加差分轉單端模塊的情況下,如何接線和設置DAQ參數。
    發(fā)表于 10-20 09:15

    什么是伺服電機編碼器?作用/關鍵技術/選型等一起看看吧!

    什么是伺服電機編碼器? 伺服電機編碼器是伺服系統(tǒng)中的核心反饋元件,用于實時檢測電機的轉速、位置、角度等參數,并將信號反饋給控制
    的頭像 發(fā)表于 06-09 11:07 ?2808次閱讀
    什么是伺服<b class='flag-5'>電機</b><b class='flag-5'>編碼器</b>?作用/關鍵技術/選型等一起看看吧!

    伺服電機編碼器與轉子磁極相位對齊方法

    永磁交流伺服電機編碼器相位為何要與轉子磁極相位對齊 其唯一目的就是要達成矢量控制的目標,使 d 軸勵磁分量和 q 軸出力分量解耦,令永磁交流伺服電機定子繞組產生的電磁場始終正交于轉子
    發(fā)表于 05-14 16:00

    磁旋轉編碼器在永磁同步電機位置測量中的應用(可下載)

    磁旋轉編碼器能夠滿足高精度、高可靠性、低成本的設計要求。 那么將 AS5040 磁旋轉編碼器應用于永磁同步電機位置檢測時,需要解決兩個問題:一是 磁旋轉編碼器安裝
    發(fā)表于 04-09 13:37 ?0次下載

    三菱伺服電機怎么設定無編碼器

    要將三菱伺服電機設置為無編碼器模式(也稱為開環(huán)控制模式),需要遵循一定的步驟和注意事項。以下是一個詳細的指南: 一、了解無編碼器模式 無編碼器模式是指伺服
    的頭像 發(fā)表于 03-20 07:41 ?1658次閱讀

    各類電機有沒有編碼器?如何分類?

    工業(yè)電機中,有些電機自帶編碼器,而有些則不帶。編碼器通常用于提供電機的位置、速度或方向等反饋信息,以實現(xiàn)更精確的控制。以下是對
    的頭像 發(fā)表于 03-16 11:09 ?1844次閱讀

    創(chuàng)新伺服電機使用的多圈絕對式旋轉編碼器

    為了適應越來越短伺服驅動器的設計,使用多圈 絕對值旋轉編碼器的長度和直徑也必須減少。 機器人和數控機床制造商比以往任何時候都 需要具有更高效率更精確和更緊湊型驅動器。為 了滿足這些未來的需求,史陶
    發(fā)表于 03-12 16:58

    編碼器與無軸承編碼器,到底如何選擇?

    在選擇軸編碼器與無軸承編碼器時,需要根據具體的應用場景、性能需求、環(huán)境條件和成本預算等因素進行綜合考慮。以下是對兩者的詳細對比,以幫助做出合適的選擇: 一、工作原理與結構 1. 軸編碼器
    的頭像 發(fā)表于 03-11 15:33 ?1342次閱讀
    軸<b class='flag-5'>編碼器</b>與無軸承<b class='flag-5'>編碼器</b>,到底如何選擇?

    伺服電機編碼器怎么選型

    伺服電機編碼器的選型是一個綜合性的過程,需要考慮多個因素以確保所選編碼器能夠滿足系統(tǒng)的性能要求。以下是一些關鍵的選型步驟和考慮因素: 一、明確應用需求 首先,需要明確伺服電機
    的頭像 發(fā)表于 03-11 12:01 ?2074次閱讀
    伺服<b class='flag-5'>電機</b><b class='flag-5'>編碼器</b>怎么選型

    定時是不是有編碼器輸入功能?

    你好,我想請教一下定時是不是有編碼器輸入功能,是高級定時和通用定時都有嗎,還是不一定,具體要看手冊,能幫我看一下STM32G473有幾
    發(fā)表于 03-11 07:07