在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

PWM控制電機速度的基本原理

GReq_mcu168 ? 來源:硬件攻城獅 ? 作者:硬件攻城獅 ? 2022-06-08 09:46 ? 次閱讀

STM32智能小車的實驗中會用到定時器PWM輸出,來改變直流電機的轉速。分享本文了解如何通過PWM實現對電機速度的控制。

PWM控制電機速度的基本原理

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

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

為了實現IO口上電壓的持續性變化,可以調節PWM的占空比。這也能夠使外設的功率進行持續性變化,最終控制直流電機轉速的快慢。如何調節PWM波形的輸出就是重點。相關推薦:STM32中PWM的配置與應用詳解。

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

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

STM32定時器中斷

為了便于理解接下來關于PWM應用的內容,先插一段定時器中斷的知識。

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

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

RCC->APB1ENR|=1<<1

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

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

10KHz是什 么意思呢?就是一秒鐘會產生10K個周期,那么一個周期的時間長度就是1/10KHz,如果你想將定時器中斷的時間間隔設置為0.5秒,那么你將arr設置為5000即可,因為arr每減1就需要一個周期的時間,減5000次就經過了5000*(1/10KHz)=0.5秒。

TIM3->DIER|=1<<0

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

MY_NVIC_Init(1,3,TIM3_IRQn,2);//搶占1,子優先級3,組2

看上面這行代碼,中斷優先級有搶占優先級和響應(即子優先級)優先級兩種,搶占優先級即:若程序1正在使用CPU,這時如果程序2要求使用CPU,并且程序2的搶占優先級高,則CPU被程序2搶占;若兩者搶占優先級相同,則就算程序2的響應優先級高于程序1,CPU也不能被搶占;若程序1正在使用CPU,程序2和程序3的搶占優先級等于或低于程序1,且程序2的響應優先級高于程序三,則待CPU空出后,程序2先運行,程序3最后運行。TIM3_IRQn是指定將要運行的中斷處理程序號。“組2”是設置中斷優先級分組的,這是因為寄存器提供了四位來設置優先級,組2代表的是前兩位給搶占優先級,后兩位給響應優先級。

PWM模式、有效電平

前面介紹完中斷,再說一下PWM工作原理。相關文章:淺析PWM控制電機轉速的原理。

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

模式1:ARR小于CCRx時輸出為“有效”電平,ARR大于CCRx時輸出為“無效”電平。

模式2:ARR小于CCRx時輸出為“無效”電平,ARR大于CCRx時輸出為“有效”電平。

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

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

上一小節講過關于定時器參數的設置。使用定時器1的通道1來輸出一路PWM波,這里的899設置的就是ARR的值,至于那個0是用來設置TIM1的頻率的,不分頻就代表TIM1的時鐘頻率和系統時鐘相同,這里假設為72MHz。

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

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

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

TIM1->ARR=arr; //設定計數器自動重裝值TIM1->PSC=psc; //預分頻器設置

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

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

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

TIM1->CCER|=1<<1;

這行代碼是用來設置“有效電平”極性的,根據手冊,當TIM1->CCER[1]這位置1時,有效電平為低電平,置0時有效電平為高電平,而默認情況下置0。

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

這行代碼只要對高級定時器進行設置,普通定時器無需設置。

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

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

上面的代碼里沒有對CCRx進行設置,這是因為CCRx常常是一個變化的值,你可以在主函數中用一個for循環+if判斷語句對它進行++或–的操作,從而達到連續改變CCRx值得目的,例如:

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

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

預裝載值PSC設置為899,那么,當定時器的當前值val從0增加到899時,一共經過了900個時鐘周期,這900個時鐘周期會產生一個PWM波形,也就是說900個定時器時鐘周期才相當于一個PWM周期,那么PWM的頻率就為72MHz/900=80KHz,周期為1/80KHz。

審核編輯 :李倩

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

    關注

    36

    文章

    1733

    瀏覽量

    71519
  • PWM
    PWM
    +關注

    關注

    116

    文章

    5437

    瀏覽量

    218490
  • 電機
    +關注

    關注

    143

    文章

    9265

    瀏覽量

    148645

原文標題:STM32通過PWM控制電機速度

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    無刷電機電調的基本原理

    有關本文所談論的無刷電機內容, 只涉及低速飛行類航模電調的小功率無傳感器應用,講解的理論比較淺顯易懂 ,旨在讓初學者能夠對無刷電機有一個比較快的認 識,掌握基本原理控制方法,可以在短
    發表于 03-17 19:57

    PWM與調頻的區別 基于PWM的電源管理方案

    PWM(脈沖寬度調制)與調頻是兩種不同的控制技術,它們在電源管理方案中各有其獨特的應用和優勢。以下是對PWM與調頻的區別以及基于PWM的電源管理方案的分析:
    的頭像 發表于 11-28 16:42 ?1064次閱讀

    如何使用PWM控制電機

    PWM(脈沖寬度調制)是一種常用的電機控制方法,通過調整脈沖信號的占空比(即高電平時間占總時間的比例)來控制電機的電壓和電流,從而實現對
    的頭像 發表于 11-28 16:30 ?3874次閱讀

    PWM控制在自動駕駛汽車中的重要性

    PWM控制基本原理 PWM控制是一種通過調整脈沖寬度來控制輸出電壓或電流的技術。在自動駕駛
    的頭像 發表于 11-19 09:05 ?1272次閱讀

    PWM控制器的工作原理 PWM信號在電機驅動中的應用

    電機)的平均電壓或電流。 1. 基本原理 PWM控制器通過產生一系列高電平和低電平的脈沖來工作。這些脈沖的寬度(即高電平或低電平持續的時間)可以變化,從而改變輸出的平均電壓或電流。具體
    的頭像 發表于 11-18 15:25 ?5507次閱讀

    電壓空間矢量pwm控制方法有哪些

    電壓空間矢量PWM基本原理 電壓空間矢量PWM是一種基于電壓矢量控制PWM技術。它的核心思想是將三相
    的頭像 發表于 10-12 15:13 ?1119次閱讀

    變頻器的基本原理控制方式

    在工業自動化和電機控制領域,變頻器是一種至關重要的設備。它不僅能夠調節交流電機速度,還能通過高級控制策略實現對
    的頭像 發表于 08-27 16:08 ?1612次閱讀

    PWM技術的基本原理與應用

    一、PWM技術的基本原理 PWM技術,即脈沖寬度調制技術,主要利用全控型電力電子器件(如IGBT、IGCT等)的高頻率開關能力,通過調節開關的通斷時間比例,將直流電壓轉換成具有特定形狀的電壓脈沖序列
    的頭像 發表于 08-20 11:36 ?1727次閱讀

    開關磁阻電機基本原理、結構特點及控制策略

    開關磁阻電機(Switched Reluctance Motor, SRM)是一種新型的電機,它以其結構簡單、成本低廉、控制靈活、效率高等優點在許多領域得到了廣泛的應用。 一、開關磁阻電機
    的頭像 發表于 08-19 10:50 ?2749次閱讀

    SPWM控制技術的基本原理和應用領域

    脈寬調制,從而實現對電機轉速和轉矩的精確控制。以下是對SPWM控制技術的詳細闡述,包括其基本原理、關鍵技術、應用領域及優勢等方面。
    的頭像 發表于 08-14 17:58 ?5055次閱讀

    pwm的頻率對電機有什么影響

    的影響: PWM頻率對電機轉速的影響 PWM頻率是指PWM信號在一個周期內產生的脈沖數量。在電機控制
    的頭像 發表于 08-08 16:12 ?6987次閱讀

    PWM驅動電機發熱的原因

    一、PWM驅動電機基本原理 1.1 PWM的概念 PWM(Pulse Width Modulation,脈沖寬度調制)是一種數字信號處理技
    的頭像 發表于 08-08 15:25 ?1869次閱讀

    PWM載波頻率與電機的關系

    PWM(Pulse Width Modulation,脈沖寬度調制)是一種廣泛應用于電機控制領域的技術。PWM通過調整脈沖的占空比來控制
    的頭像 發表于 08-08 15:23 ?3615次閱讀

    如何使用pwm實現對直流電機控制

    PWM基本原理 PWM是一種數字調制技術,通過調節脈沖的占空比來實現對模擬信號的控制。在PWM控制
    的頭像 發表于 08-08 15:18 ?2347次閱讀

    如何實現pwm控制功能

    PWM(Pulse Width Modulation,脈沖寬度調制)是一種常見的電子控制技術,廣泛應用于各種電子設備中,如電機控制、LED調光、電源管理等。 一、
    的頭像 發表于 08-08 15:08 ?1545次閱讀
    主站蜘蛛池模板: 天天色天天摸 | 九九视频这里只有精品 | 狠狠躁天天躁 | 亚洲精品久久婷婷爱久久婷婷 | 天天干天天曰天天操 | 四虎影院观看视频 | 日本一区二区精品88 | 人人做人人插 | 赛罗奥特曼银河帝国普通话免费版 | 亚洲综合区图片小说区 | 777黄色片| 男女做视频网站免费观看 | 啪啪伊人网| 亚洲欧洲国产精品你懂的 | 久操成人 | 欧美电影一区二区三区 | 激情综合色综合久久综合 | 午夜视频在线看 | bt天堂资源 | 99久久综合给久久精品 | 国产精品你懂的在线播放 | 看片地址 | 四虎在线永久免费观看 | 爽好舒服老师快点 | 久久9精品 | 曰本女人色黄网站 | 影音先锋午夜资源网站 | 免费精品99久久国产综合精品 | 99热精品久久只有精品30 | 在线免费观看一区二区三区 | 五月综合色| 在线看欧美成人中文字幕视频 | 亚洲国产成人久久精品影视 | 欧美69xx性欧美 | 在线色站 | 日本人爽p大片免费看 | 天天干天天操天天干 | 精品午夜视频 | 国产精欧美一区二区三区 | 欧美黄色片网站 | 又黄又爽又猛午夜性色播在线播放 |