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

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

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

3天內不再提示

STM32通過PWM控制電機速度

單片機與嵌入式 ? 來源:單片機與嵌入式 ? 2023-07-06 09:56 ? 次閱讀

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

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

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

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

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

wKgZomSmH1OAGSNRAACBEuIXb6A923.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時觸發中斷然后進入中斷處理程序進行中斷處理。以下代碼為例:

wKgZomSmH1OAK2eSAAAY3c8kK-Y218.png

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

wKgZomSmH1OAHty_AAAGa2o90Lk604.png

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

wKgZomSmH1OALkQZAAADRYb1tsA366.png

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

wKgaomSmH1OAO96AAAAG9bTnlCw926.png

看上面這行代碼,中斷優先級有搶占優先級和響應(即子優先級)優先級兩種,搶占優先級即:若程序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工作原理

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

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

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

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

wKgaomSmH1OAGz4QAAAHWckfgEY235.png

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

wKgZomSmH1OAb3iQAAAlakSS3eI200.png

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

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

wKgZomSmH1OAUdxrAAAH5_nIZak402.png

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

wKgaomSmH1OAG4y4AAAIivBZrkw040.png

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

wKgaomSmH1OAc56GAAACcm_HAAo426.png

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

wKgaomSmH1OAcfzxAAAEYatoBMY746.png

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

wKgZomSmH1OAU4nNAAAETxYy_Gg917.png

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

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

wKgaomSmH1OAJL9SAAAGWULp8LM190.png

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

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

審核編輯:湯梓紅

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

    關注

    116

    文章

    5324

    瀏覽量

    217565
  • STM32
    +關注

    關注

    2287

    文章

    10988

    瀏覽量

    361606
  • 定時器
    +關注

    關注

    23

    文章

    3274

    瀏覽量

    116887
  • Systick
    +關注

    關注

    0

    文章

    63

    瀏覽量

    13451
  • 控制電機
    +關注

    關注

    0

    文章

    244

    瀏覽量

    18519

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

文章出處:【微信號:單片機與嵌入式,微信公眾號:單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    stm32通過PWM輸出控制LED亮或滅

    誰會stm32通過PWM輸出控制LED亮或滅 求大神指導
    發表于 06-26 00:55

    STM32F407通過定時器控制電機做正反轉正弦運動

    電機轉動角度為A,求導后得到角速度公式:,由公式可以看出電機的運行速度是從零開始增加的,可以減小電機啟動負載。本模塊的最終目的是
    發表于 10-28 08:00

    stm32如何通過pwm控制導軌電機

    stm32發出PWM控制電機,使得導軌上的平臺沿著導軌左右移動。從而通過程序控制電機的啟動,
    發表于 06-28 13:54

    stm32電機控制控制兩路直流電機

    小車使用的電機是12v供電的直流電機,帶編碼器反饋,這樣就可以采用閉環速度控制,這里電機使用PWM
    發表于 06-29 09:18

    基于stm32pwm控制電機速度

    基于stm32pwm控制電機速度目錄一、STM32F103輸出一路
    發表于 08-09 07:23

    STM32電機PWM控制

    2.1 STM32電機PWM控制我們這里提供左右兩個電機PWM
    發表于 09-03 08:28

    stm32如何通過PWM電機控制

    stm32如何通過PWM電機控制
    發表于 12-21 06:48

    如何通過PWM程序來控制交流伺服電機速度呢?

    如何通過PWM程序來控制交流伺服電機速度,就是說PWM的占空比還是頻率影響交流伺服
    發表于 04-10 11:52

    PID控制PWM調節直流電機速度

    PID控制PWM調節直流電機速度(安徽理士電源技術有限公司圖片)-PID控制PWM調節直流
    發表于 09-15 14:02 ?98次下載
    PID<b class='flag-5'>控制</b><b class='flag-5'>PWM</b>調節直流<b class='flag-5'>電機</b><b class='flag-5'>速度</b>

    stm32電機控制控制兩路直流電機!看完你會了嗎

    小車使用的電機是12v供電的直流電機,帶編碼器反饋,這樣就可以采用閉環速度控制,這里電機使用PWM
    發表于 01-14 12:38 ?43次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>之<b class='flag-5'>控制</b>兩路直流<b class='flag-5'>電機</b>!看完你會了嗎

    使用555 IC的PWM控制直流電機速度

    電子發燒友網站提供《使用555 IC的PWM控制直流電機速度.zip》資料免費下載
    發表于 07-06 14:38 ?10次下載
    使用555 IC的<b class='flag-5'>PWM</b><b class='flag-5'>控制</b>直流<b class='flag-5'>電機</b>的<b class='flag-5'>速度</b>

    樹莓派通過pwm控制電機速度

    樹莓派通過脈沖寬度調制可以控制電機速度。實際上在精度要求不是非常高的情況下,普通引腳也可以通過軟件模擬來
    發表于 03-21 10:19 ?0次下載
    樹莓派<b class='flag-5'>通過</b><b class='flag-5'>pwm</b><b class='flag-5'>控制</b><b class='flag-5'>電機</b><b class='flag-5'>速度</b>

    STM32實現四驅小車電機控制任務之電機速度PID控制算法

    目錄. 一. 緒論 二. 電機速度環PID原理 三. STM32使用CAN總線實現大疆M3508電機速度閉環
    發表于 05-06 10:28 ?8次下載
    <b class='flag-5'>STM32</b>實現四驅小車<b class='flag-5'>電機</b><b class='flag-5'>控制</b>任務之<b class='flag-5'>電機</b><b class='flag-5'>速度</b>PID<b class='flag-5'>控制</b>算法

    PWM輸出控制電機

    、main函數; 電機系列 一、PWM 輸出控制電機 1 、相關 IO 介紹 電機控制芯片為A4
    發表于 05-06 11:03 ?5次下載
    <b class='flag-5'>PWM</b>輸出<b class='flag-5'>控制</b><b class='flag-5'>電機</b>

    如何使用PWM控制電機速度

    伺服電機是一種能夠精確控制其位置、速度和加速度電機。它接收來自控制器的指令信號,并據此調整其輸
    的頭像 發表于 06-19 17:39 ?4743次閱讀
    如何使用<b class='flag-5'>PWM</b><b class='flag-5'>控制</b><b class='flag-5'>電機</b><b class='flag-5'>速度</b>
    主站蜘蛛池模板: 欧美片欧美日韩国产综合片 | 永久黄网站色视频免费观看99 | 奇米影视大全 | 国产综合免费视频 | 国产欧美日韩综合精品一区二区 | 全部免费特黄特色大片农村 | 亚洲午夜免费 | 日本aaaaa毛片动漫 | 久久国产免费 | 亚洲aa | 久久精品99无色码中文字幕 | 国模大胆一区二区三区 | 免费国产网站 | 69xxxⅹxxxxxx日本| 农村妇女野外一级毛片 | 日韩欧美亚洲综合久久影院d3 | h免费在线观看 | 激情在线播放免费视频高清 | 亚洲男人的天堂在线播放 | 思思久久96热在精品不卡 | 九九精品国产 | 黄色福利网| 亚洲国产日韩欧美在线as乱码 | 夜夜爱夜夜爽 | 欧美人成绝费网站色www吃脚 | 狼色视频在线观免费观看 | 欧美一级特黄aaaaaa在线看片 | 欧美国产三级 | 久久看片网 | 亚洲 欧美 91| 久久国产精品99久久久久久老狼 | 国产精品二区三区免费播放心 | 中国男女全黄大片一级 | 天天操夜夜操 | 美女色18片黄黄色 | 四虎永久免费网站 | www.色天使| 男男宿舍高h炒肉bl 男男污肉高h坐便器调教 | 狠狠色丁香久久婷婷综合丁香 | 黄色在线 | 被啪漫画羞羞漫画 |