国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

PWM控制電機(jī)速度的基本原理

GReq_mcu168 ? 來源:硬件攻城獅 ? 作者:硬件攻城獅 ? 2022-06-08 09:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM32智能小車的實(shí)驗(yàn)中會(huì)用到定時(shí)器PWM輸出,來改變直流電機(jī)的轉(zhuǎn)速。分享本文了解如何通過PWM實(shí)現(xiàn)對(duì)電機(jī)速度的控制。

PWM控制電機(jī)速度的基本原理

PWM(Pulse Width Modulation),也就是脈沖寬度調(diào)制。

PWM中有一個(gè)比較重要的概念,占空比:是一個(gè)脈沖周期內(nèi)有效電平在整個(gè)周期所占的比例。

為了實(shí)現(xiàn)IO口上電壓的持續(xù)性變化,可以調(diào)節(jié)PWM的占空比。這也能夠使外設(shè)的功率進(jìn)行持續(xù)性變化,最終控制直流電機(jī)轉(zhuǎn)速的快慢。如何調(diào)節(jié)PWM波形的輸出就是重點(diǎn)。相關(guān)推薦:STM32中PWM的配置與應(yīng)用詳解。

f8acdb50-e6c7-11ec-ba43-dac502259ad0.png

上圖中的ARR是我們給定時(shí)器的一個(gè)預(yù)裝載值,CCRx的上下變化是產(chǎn)生PWM波的關(guān)鍵。我們假設(shè)ARR大于CCRx的部分輸出為高電平(即t1-t2、t3-t4、t5-t6),ARR小于CCRx的部分輸出為低電平(即0-t1、t2-t3、t4-t5),則改變CCRx的值就能改變輸出PWM的占空比。因此,想要控制PWM的輸出波形,重要的就是如何設(shè)置ARR與CCRx這兩個(gè)寄存器的值了。

STM32定時(shí)器中斷

為了便于理解接下來關(guān)于PWM應(yīng)用的內(nèi)容,先插一段定時(shí)器中斷的知識(shí)。

產(chǎn)生定時(shí)中斷是定時(shí)器的用法之一,與定時(shí)器用來進(jìn)行PWM輸出和輸入捕獲相比,定時(shí)器中斷更容易理解、掌握。
原理簡(jiǎn)介
使用通用定時(shí)器進(jìn)行中斷的原理,其實(shí)和開發(fā)板Systick定時(shí)器進(jìn)行中斷延時(shí)很相似(Stm32入門——Systick定時(shí)器),即:用psc(預(yù)分頻系數(shù))設(shè)置好定時(shí)器時(shí)鐘后,arr(預(yù)裝載值)在每個(gè)時(shí)鐘周期內(nèi)減1,當(dāng)arr減為0時(shí)觸發(fā)中斷然后進(jìn)入中斷處理程序進(jìn)行中斷處理。以下代碼為例:

void TIM3_Int_Init(u16 arr,u16 psc){  RCC->APB1ENR|=1<<1;  //TIM3時(shí)鐘使能       TIM3->ARR=arr;    //設(shè)定計(jì)數(shù)器自動(dòng)重裝值   TIM3->PSC=psc;    //預(yù)分頻器設(shè)置  TIM3->DIER|=1<<0;   //允許更新中斷          TIM3->CR1|=0x01;    //使能定時(shí)器3    MY_NVIC_Init(1,3,TIM3_IRQn,2);//搶占1,子優(yōu)先級(jí)3,組2                   }

RCC->APB1ENR|=1<<1

解釋一下上面這行代碼,由于定時(shí)器3(TIM3)是掛在APB1上的外設(shè),所以要打開APB1,這里的預(yù)分頻器值psc是來設(shè)置TIM3的時(shí)鐘頻率的,如果系統(tǒng)時(shí)鐘(SYSTICK)頻率為72MHz、psc為7199,則TIM3的時(shí)鐘頻率就為:

72MHz/(7199+1)Hz = 10KHz    //這里的“+1”是手冊(cè)中規(guī)定的。

10KHz是什 么意思呢?就是一秒鐘會(huì)產(chǎn)生10K個(gè)周期,那么一個(gè)周期的時(shí)間長(zhǎng)度就是1/10KHz,如果你想將定時(shí)器中斷的時(shí)間間隔設(shè)置為0.5秒,那么你將arr設(shè)置為5000即可,因?yàn)閍rr每減1就需要一個(gè)周期的時(shí)間,減5000次就經(jīng)過了5000*(1/10KHz)=0.5秒。

TIM3->DIER|=1<<0

再解釋下上面這一行,設(shè)置允許更新中斷,即arr減到0以后可以觸發(fā)更新中斷,還有其他類型的中斷。

MY_NVIC_Init(1,3,TIM3_IRQn,2);//搶占1,子優(yōu)先級(jí)3,組2

看上面這行代碼,中斷優(yōu)先級(jí)有搶占優(yōu)先級(jí)和響應(yīng)(即子優(yōu)先級(jí))優(yōu)先級(jí)兩種,搶占優(yōu)先級(jí)即:若程序1正在使用CPU,這時(shí)如果程序2要求使用CPU,并且程序2的搶占優(yōu)先級(jí)高,則CPU被程序2搶占;若兩者搶占優(yōu)先級(jí)相同,則就算程序2的響應(yīng)優(yōu)先級(jí)高于程序1,CPU也不能被搶占;若程序1正在使用CPU,程序2和程序3的搶占優(yōu)先級(jí)等于或低于程序1,且程序2的響應(yīng)優(yōu)先級(jí)高于程序三,則待CPU空出后,程序2先運(yùn)行,程序3最后運(yùn)行。TIM3_IRQn是指定將要運(yùn)行的中斷處理程序號(hào)。“組2”是設(shè)置中斷優(yōu)先級(jí)分組的,這是因?yàn)榧拇嫫魈峁┝怂奈粊碓O(shè)置優(yōu)先級(jí),組2代表的是前兩位給搶占優(yōu)先級(jí),后兩位給響應(yīng)優(yōu)先級(jí)。

PWM模式、有效電平

前面介紹完中斷,再說一下PWM工作原理。相關(guān)文章:淺析PWM控制電機(jī)轉(zhuǎn)速的原理。

假設(shè)上圖中ARR大于CCRx時(shí)輸出為高電平,ARR小于CCRx時(shí)輸出為低電平,但在實(shí)際運(yùn)用中可能并非如此,有可能是相反的情況——ARR大于CCRx時(shí)輸出為低電平,ARR小于CCRx時(shí)輸出為高電平,至于到底是哪種情況,還要看PWM是哪種模式、有效電平又設(shè)置的是何種極性了。

模式1:ARR小于CCRx時(shí)輸出為“有效”電平,ARR大于CCRx時(shí)輸出為“無(wú)效”電平。

模式2:ARR小于CCRx時(shí)輸出為“無(wú)效”電平,ARR大于CCRx時(shí)輸出為“有效”電平。

這里說的是“有效”和“無(wú)效”,而不是“高”和“低”,也就是說有效電平可高可低,并非一定就是高電平。PWM模式、效電平極性,需要程序員自己配置相關(guān)的寄存器來實(shí)現(xiàn)。通過下面的代碼來講解。

TIM1_PWM_Init(899,0);//不分頻。PWM頻率=72000/(899+1)=80Khz

上一小節(jié)講過關(guān)于定時(shí)器參數(shù)的設(shè)置。使用定時(shí)器1的通道1來輸出一路PWM波,這里的899設(shè)置的就是ARR的值,至于那個(gè)0是用來設(shè)置TIM1的頻率的,不分頻就代表TIM1的時(shí)鐘頻率和系統(tǒng)時(shí)鐘相同,這里假設(shè)為72MHz。

void TIM1_PWM_Init(u16 arr,u16 psc){                //此部分需手動(dòng)修改IO口設(shè)置  RCC->APB2ENR|=1<<11;   //TIM1時(shí)鐘使能      GPIOA->CRH&=0XFFFFFFF0;  //PA8清除之前的設(shè)置  GPIOA->CRH|=0X0000000B;  //復(fù)用功能輸出 
  TIM1->ARR=arr;      //設(shè)定計(jì)數(shù)器自動(dòng)重裝值   TIM1->PSC=psc;      //預(yù)分頻器設(shè)置
  TIM1->CCMR1|=7<<4;    //CH1 PWM2模式       TIM1->CCMR1|=1<<3;     //CH1預(yù)裝載使能      TIM1->CCER|=0<<1;     //OC1 輸出使能     //TIM1->CCER|=1<<1;
  TIM1->BDTR|=1<<15;     //MOE 主輸出使能     
  TIM1->CR1=0x0080;     //ARPE使能   TIM1->CR1|=0x01;      //使能定時(shí)器1                       }

下文具體分析上面的代碼。

前面4-6行是用來配置GPIO口的。

TIM1->ARR=arr; //設(shè)定計(jì)數(shù)器自動(dòng)重裝值TIM1->PSC=psc; //預(yù)分頻器設(shè)置

這兩行就是我上門提到的設(shè)置定時(shí)器的頻率和重裝載值。

TIM1->CCMR1|=7<<4; //CH1 PWM2模式TIM1->CCMR1|=1<<3; //CH1預(yù)裝載使能TIM1->CCER|=0<<1; //OC1 輸出使能

這三行是用來設(shè)置PWM輸出模式和設(shè)置通道的,通道是什么呢?簡(jiǎn)單地講就是輸出PWM波的GPIO口,代碼一開始不是設(shè)置了PA8這個(gè)GPIO口嘛,這個(gè)PA8就是通道1。使用通道的話要先進(jìn)行輸入輸出方向、通道使能的設(shè)置。

TIM1->CCER|=1<<1;

這行代碼是用來設(shè)置“有效電平”極性的,根據(jù)手冊(cè),當(dāng)TIM1->CCER[1]這位置1時(shí),有效電平為低電平,置0時(shí)有效電平為高電平,而默認(rèn)情況下置0。

TIM1->BDTR|=1<<15; //MOE 主輸出使能

這行代碼只要對(duì)高級(jí)定時(shí)器進(jìn)行設(shè)置,普通定時(shí)器無(wú)需設(shè)置。

TIM1->CR1=0x0080; //ARPE使能

這行代碼是用來使能ARPE,ARPE是什么呢,就是當(dāng)它被置1時(shí),你自己設(shè)置的CCRx會(huì)立即生效,如果它被置為0,那么你自己設(shè)置的CCRx值不會(huì)立即生效(可能之前ARPE已經(jīng)有值了),而是當(dāng)之前設(shè)置的CCRx生效后才會(huì)使用你最新設(shè)置的CCRx值。

上面的代碼里沒有對(duì)CCRx進(jìn)行設(shè)置,這是因?yàn)镃CRx常常是一個(gè)變化的值,你可以在主函數(shù)中用一個(gè)for循環(huán)+if判斷語(yǔ)句對(duì)它進(jìn)行++或–的操作,從而達(dá)到連續(xù)改變CCRx值得目的,例如:

for(i=0;i<300;i++){  TIM1->CCR1=i;if(i==300){    i=0;  }}

PWM波的周期是由定時(shí)器時(shí)鐘頻率和預(yù)裝載值兩者決定的,預(yù)裝載值就是ARR。

預(yù)裝載值PSC設(shè)置為899,那么,當(dāng)定時(shí)器的當(dāng)前值val從0增加到899時(shí),一共經(jīng)過了900個(gè)時(shí)鐘周期,這900個(gè)時(shí)鐘周期會(huì)產(chǎn)生一個(gè)PWM波形,也就是說900個(gè)定時(shí)器時(shí)鐘周期才相當(dāng)于一個(gè)PWM周期,那么PWM的頻率就為72MHz/900=80KHz,周期為1/80KHz。

審核編輯 :李倩

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

    關(guān)注

    36

    文章

    1781

    瀏覽量

    73941
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    116

    文章

    5872

    瀏覽量

    225645
  • 電機(jī)
    +關(guān)注

    關(guān)注

    143

    文章

    9592

    瀏覽量

    154106

原文標(biāo)題:STM32通過PWM控制電機(jī)速度

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    初識(shí)馬達(dá)基本原理及組成部分

    電機(jī)分為發(fā)電機(jī)和電動(dòng)機(jī)兩類,馬達(dá)通常指?電動(dòng)機(jī)?,即利用電磁感應(yīng)原理將電能轉(zhuǎn)換為機(jī)械能的裝置,常見于起動(dòng)機(jī)、驅(qū)動(dòng)系統(tǒng)等場(chǎng)景。? 以下是關(guān)于馬達(dá)的詳細(xì)介紹: 1.基本原理 馬達(dá)的工作基于電磁感應(yīng)定律
    的頭像 發(fā)表于 01-05 09:32 ?627次閱讀
    初識(shí)馬達(dá)<b class='flag-5'>基本原理</b>及組成部分

    步進(jìn)電機(jī)控制原理

    作,控制信號(hào)由單片機(jī)產(chǎn)生。其基本原理作用如下: (1)控制換相順序 通電換相這一過程稱為脈沖分配。例如:三相步進(jìn)電機(jī)的三拍工作方式,其各相通電順序?yàn)锳-B-C-D,通電
    發(fā)表于 01-04 08:25

    如何通過PWM脈沖控制電機(jī)

    控制電機(jī)的平均電壓大小,從而實(shí)現(xiàn)對(duì)電機(jī)的旋轉(zhuǎn)速度進(jìn)行控制。具體來說,單片機(jī)通過計(jì)算占空比,即高電平脈沖的占用時(shí)間或低電平脈沖的占用時(shí)間,來
    發(fā)表于 11-28 06:58

    無(wú)感無(wú)刷電機(jī)啟動(dòng)的基本原理

    感無(wú)刷電機(jī)啟動(dòng)的最大挑戰(zhàn)在于 電機(jī)靜止時(shí)反電動(dòng)勢(shì)為零 ,無(wú)法通過檢測(cè)反電動(dòng)勢(shì)來確定轉(zhuǎn)子位置。因此,必須采用特殊的啟動(dòng)方法,先通過外部控制電機(jī)拉到一定轉(zhuǎn)速,使反電動(dòng)勢(shì)達(dá)到可檢測(cè)的水平,
    的頭像 發(fā)表于 11-04 15:38 ?1346次閱讀

    簡(jiǎn)述沖擊電壓發(fā)生器的基本原理

    沖擊電壓發(fā)生器的基本原理是 “電容并聯(lián)充電、串聯(lián)放電”,核心流程分三步: 先通過整流電路,將工頻交流電轉(zhuǎn)換為直流電,給多組電容器并聯(lián)充電,儲(chǔ)存足夠電能并達(dá)到設(shè)定電壓; 當(dāng)充電完成后,觸發(fā)高壓開關(guān)使
    發(fā)表于 10-17 14:10

    無(wú)刷電機(jī)弱磁控制:技術(shù)原理與實(shí)戰(zhàn)應(yīng)用

    好處。一、無(wú)刷電機(jī)弱磁控制是什么弱磁控制是一種通過調(diào)節(jié)電機(jī)的磁場(chǎng)強(qiáng)度來實(shí)現(xiàn)特定控制目標(biāo)的技術(shù)。對(duì)于無(wú)刷
    的頭像 發(fā)表于 08-01 18:05 ?9709次閱讀
    無(wú)刷<b class='flag-5'>電機(jī)</b>弱磁<b class='flag-5'>控制</b>:技術(shù)原理與實(shí)戰(zhàn)應(yīng)用

    基于高頻注入的異步電機(jī)無(wú)傳感器控制

    異步電機(jī)需要準(zhǔn)確的轉(zhuǎn)速信息來保證電機(jī)安全、可靠和高效的工作。結(jié)合異步測(cè)速發(fā)電機(jī)基本原理,提出了利用高頻環(huán)流估計(jì)轉(zhuǎn)速的方法。在異步電機(jī)矢量
    發(fā)表于 07-28 15:10

    三相異步電機(jī)直接轉(zhuǎn)矩控制的圓形磁鏈研究

    摘要:該文以異步電動(dòng)機(jī)直接轉(zhuǎn)矩控制基本原理為基礎(chǔ),利用Mmlmlsimaink完成直接轉(zhuǎn)矩控制系統(tǒng)近似圓形磁鏈控制方法的仿真。采用全速范圍內(nèi)的電機(jī)
    發(fā)表于 06-16 21:50

    了解信號(hào)完整性的基本原理

    ,設(shè)計(jì)人員必須注意電路板布局并使用適當(dāng)?shù)膶?dǎo)線和連接器,從而最大限度地減少反射、噪聲和串?dāng)_。此外,還必須了解傳輸線、阻抗、回波損耗和共振等基本原理。 本文將介紹討論信號(hào)完整性時(shí)使用的一些術(shù)語(yǔ),以及設(shè)計(jì)人員需要考慮的問題,然后介紹 [Amphenol] 優(yōu)異的電纜和
    的頭像 發(fā)表于 05-25 11:54 ?1360次閱讀
    了解信號(hào)完整性的<b class='flag-5'>基本原理</b>

    STM32定時(shí)器基本原理及常見問題之培訓(xùn)資料

    STM32 定時(shí)器基本原理及常見問題之培訓(xùn)資料v3.10 時(shí)基單元、捕捉比較功能、主從觸發(fā)與級(jí)聯(lián)、案例分享 培訓(xùn)內(nèi)容:
    發(fā)表于 04-08 16:26

    六天專修課程!電子電路基本原理66課

    本資料內(nèi)容主要分為模擬電路、數(shù)字電路及應(yīng)用技術(shù)三個(gè)部分,基本涵蓋了與電子電路相關(guān)的全部技術(shù)內(nèi)容及必要的知識(shí)點(diǎn)。從電路的基本元件開始,介紹了模擬電路的晶體管及場(chǎng)效應(yīng)晶體管放大電路的基本原理
    發(fā)表于 04-08 16:21

    電機(jī)技術(shù)資料—BLDC 電機(jī)控制算法

    , 即對(duì)于轉(zhuǎn)子速度 /或電機(jī)電流以及 PWM 信號(hào)進(jìn)行測(cè)量, 以控制電機(jī)速度功率。 BLDC
    發(fā)表于 04-01 16:43

    步進(jìn)電機(jī)基本原理和硬件設(shè)計(jì)

    步進(jìn)電機(jī)因其精準(zhǔn)的位置控制和易于驅(qū)動(dòng)的特性,廣泛應(yīng)用于打印機(jī)、CNC機(jī)床、機(jī)器人等領(lǐng)域。無(wú)論您是初學(xué)者還是有一定經(jīng)驗(yàn)的工程師,這個(gè)系列都將為您提供有價(jià)值的知識(shí)和實(shí)踐指導(dǎo)。
    的頭像 發(fā)表于 03-31 09:45 ?1598次閱讀
    步進(jìn)<b class='flag-5'>電機(jī)</b>的<b class='flag-5'>基本原理</b>和硬件設(shè)計(jì)

    無(wú)刷電機(jī)電調(diào)的基本原理

    有關(guān)本文所談?wù)摰臒o(wú)刷電機(jī)內(nèi)容, 只涉及低速飛行類航模電調(diào)的小功率無(wú)傳感器應(yīng)用,講解的理論比較淺顯易懂 ,旨在讓初學(xué)者能夠?qū)o(wú)刷電機(jī)有一個(gè)比較快的認(rèn) 識(shí),掌握基本原理控制方法,可以在短
    發(fā)表于 03-17 19:57

    【瑞薩RA2L1入門學(xué)習(xí)】01. PWM 呼吸燈

    文件準(zhǔn)備】 配置 e2studio 輸出 Hex 文件,選擇項(xiàng)目->屬性,配置如下所示。 編譯后的Hex文件一般會(huì)生成在項(xiàng)目的Debug 文件夾中。 【PWM基本原理PWM基本原理
    發(fā)表于 03-07 11:43