一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32的正交編碼器驅(qū)動電機設(shè)計

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

掃碼添加小助手

加入工程師交流群

1。編碼器原理

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

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

2。編碼器的中斷

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

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

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

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

我用STM32的定時器3工作于編碼器方式,可以正常得到編碼器位置,但由于現(xiàn)在只有16位計數(shù),位數(shù)不夠,我想擴展到32位,可以先用定時器內(nèi)部連接,將定時器3 的溢出送到定時器2,用定時器2做高位,在正轉(zhuǎn)的時候正常,但反向的時候出錯。換了個思路,做個每10ms產(chǎn)生一次的中斷,在中斷中調(diào)用下面的代碼,下述代碼中MAX_COUNT是 比 10ms內(nèi)可能出現(xiàn)的計數(shù)最大值還要大的值,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.編碼器有個轉(zhuǎn)速上限,超過這個上限是不能正常工作的,這個是硬件的限制,原則上線數(shù)越多轉(zhuǎn)速就越低,這點在選型時要注意,編碼器的輸出一般是開漏的,所以單片機的io一定要上拉輸入狀態(tài)。

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

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

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

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

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

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

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

    關(guān)注

    45

    文章

    3796

    瀏覽量

    138009
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364776
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3298

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    三菱伺服電機怎么設(shè)定無編碼器

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

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

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

    伺服電機編碼器怎么選型

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

    伺服電機編碼器故障及維修

    伺服電機編碼器故障及維修,伺服電機編碼器4大常見故障,編碼器信號丟失或不穩(wěn)定,編碼器零點偏移,
    的頭像 發(fā)表于 01-21 14:49 ?1822次閱讀
    伺服<b class='flag-5'>電機</b><b class='flag-5'>編碼器</b>故障及維修

    伺服電機編碼器

    在現(xiàn)代工業(yè)自動化和控制系統(tǒng)中,伺服電機編碼器扮演著至關(guān)重要的角色。它能夠精確測量電機的位置、速度和方向,為系統(tǒng)提供準(zhǔn)確的反饋信息,實現(xiàn)高精度的運動控制。伺服電機
    的頭像 發(fā)表于 01-20 14:01 ?866次閱讀
    伺服<b class='flag-5'>電機</b><b class='flag-5'>編碼器</b>

    定期進(jìn)行維護(hù)保養(yǎng)伺服電機編碼器,常見故障及其維修方法

    伺服電機作為關(guān)鍵驅(qū)動元件,其性能直接影響到整個系統(tǒng)的精度和效率。而伺服電機編碼器則是其關(guān)鍵組成部分,負(fù)責(zé)實時反饋電機的轉(zhuǎn)動位置和速度。
    的頭像 發(fā)表于 12-27 16:24 ?1574次閱讀
    定期進(jìn)行維護(hù)保養(yǎng)伺服<b class='flag-5'>電機</b><b class='flag-5'>編碼器</b>,常見故障及其維修方法

    智能化升級趨勢下,磁編碼器電機控制系統(tǒng)中的重要性凸顯

    、優(yōu)化系統(tǒng)性能等優(yōu)勢。 ? 從物理介質(zhì)的不同來分,伺服電機編碼器可以分為光電編碼器和磁電編碼器,另外旋轉(zhuǎn)變壓也算一種特殊的伺服
    的頭像 發(fā)表于 12-11 00:20 ?3102次閱讀

    電機編碼器故障與處理方法 如何維護(hù)和保養(yǎng)編碼器

    ? ? ? 電機編碼器屬于精密儀器,在使用過程中難免會出現(xiàn)一些故障,比較常見的故障有元器件故障、連接電纜故障、電源電壓過低、電池電壓下降、電纜屏蔽線未接或脫落、安裝松動、光柵污染等,維修人員可以通過
    的頭像 發(fā)表于 12-02 01:03 ?3103次閱讀

    其利天下技術(shù)·伺服電機編碼器的作用及工作原理·低壓伺服電機驅(qū)動方案開發(fā)

    電機系統(tǒng)中起著至關(guān)重要的作用,是實現(xiàn)高效、穩(wěn)定和精確控制的核心組件。編碼器的作用是什么呢?它的工作原理又是怎樣的?其利天下·伺服電機驅(qū)動方案編碼器
    的頭像 發(fā)表于 11-02 10:38 ?1015次閱讀
    其利天下技術(shù)·伺服<b class='flag-5'>電機</b><b class='flag-5'>編碼器</b>的作用及工作原理·低壓伺服<b class='flag-5'>電機</b><b class='flag-5'>驅(qū)動</b>方案開發(fā)

    電機控制系統(tǒng)絕對值編碼器正交分頻輸出Abs2QEP PTO基于F28004x的軟件實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《電機控制系統(tǒng)絕對值編碼器正交分頻輸出Abs2QEP PTO基于F28004x的軟件實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-31 10:28 ?0次下載

    電機控制系統(tǒng)絕對值編碼器正交分頻輸出Abs2QEP PTO(Pulse Train Output)基于F28004x的軟件實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《電機控制系統(tǒng)絕對值編碼器正交分頻輸出Abs2QEP PTO(Pulse Train Output)基于F28004x的軟件實現(xiàn).pdf》資料免費下載
    發(fā)表于 09-27 10:15 ?0次下載
    <b class='flag-5'>電機</b>控制系統(tǒng)絕對值<b class='flag-5'>編碼器</b><b class='flag-5'>正交</b>分頻輸出Abs2QEP PTO(Pulse Train Output)基于F28004x的軟件實現(xiàn)

    具有Endat 2.2絕對編碼器反饋、采用EtherCAT連接的電機驅(qū)動系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《具有Endat 2.2絕對編碼器反饋、采用EtherCAT連接的電機驅(qū)動系統(tǒng).pdf》資料免費下載
    發(fā)表于 09-02 09:32 ?0次下載
    具有Endat 2.2絕對<b class='flag-5'>編碼器</b>反饋、采用EtherCAT連接的<b class='flag-5'>電機</b><b class='flag-5'>驅(qū)動</b>系統(tǒng)

    stm32定時編碼器模式可以做輸出嗎?

    我想要做正交編碼器,但是網(wǎng)上一般只介紹了用編碼器對其做解碼,而我需要的是輸出波形。我在一個小網(wǎng)站的解答上看到定時編碼器模式也可以做輸出,
    發(fā)表于 07-31 07:59

    AGV輪轂電機中的編碼器

    編碼器還可以提供電機的絕對位置信息,這對于AGV系統(tǒng)的定位和校準(zhǔn)至關(guān)重要。在AGV系統(tǒng)中,一般會使用Z信號來表示編碼器的絕對位置。Z信號是一個特殊的脈沖,它在編碼器旋轉(zhuǎn)一周時只產(chǎn)生一次
    的頭像 發(fā)表于 07-22 11:33 ?1017次閱讀
    AGV輪轂<b class='flag-5'>電機</b>中的<b class='flag-5'>編碼器</b>

    伺服電機編碼器種類有哪些?

    在轉(zhuǎn)速為1000 rpm以上,在高負(fù)載下有很好的性能。 這種類型的編碼器具有良好的抗振穩(wěn)定性,在高負(fù)載下保持較高性能。 該類型編碼器可以使用與交流伺服電機匹配的交流驅(qū)動器,例如 PID
    的頭像 發(fā)表于 07-21 17:01 ?2386次閱讀