哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

STM32通過PWM控制電機(jī)速度

單片機(jī)與嵌入式 ? 來源:單片機(jī)與嵌入式 ? 2023-07-06 09:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

wKgZomSmH1OAGSNRAACBEuIXb6A923.png

上圖中的ARR是我們給定時(shí)器的一個預(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這兩個寄存器的值了。

STM32定時(shí)器中斷

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

產(chǎn)生定時(shí)中斷是定時(shí)器的用法之一,與定時(shí)器用來進(jìn)行PWM輸出和輸入捕獲相比,定時(shí)器中斷更容易理解、掌握。

原理簡介

使用通用定時(shí)器進(jìn)行中斷的原理,其實(shí)和開發(fā)板Systick定時(shí)器進(jìn)行中斷延時(shí)很相似(Stm32入門——Systick定時(shí)器),即:用psc(預(yù)分頻系數(shù))設(shè)置好定時(shí)器時(shí)鐘后,arr(預(yù)裝載值)在每個時(shí)鐘周期內(nèi)減1,當(dāng)arr減為0時(shí)觸發(fā)中斷然后進(jìn)入中斷處理程序進(jìn)行中斷處理。以下代碼為例:

wKgZomSmH1OAK2eSAAAY3c8kK-Y218.png

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

wKgZomSmH1OAHty_AAAGa2o90Lk604.png

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

wKgZomSmH1OALkQZAAADRYb1tsA366.png

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

wKgaomSmH1OAO96AAAAG9bTnlCw926.png

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

PWM模式、有效電平

前面介紹完中斷,再說一下PWM工作原理。

假設(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í)輸出為“無效”電平。

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

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

wKgaomSmH1OAGz4QAAAHWckfgEY235.png

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

wKgZomSmH1OAb3iQAAAlakSS3eI200.png

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

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

wKgZomSmH1OAUdxrAAAH5_nIZak402.png

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

wKgaomSmH1OAG4y4AAAIivBZrkw040.png

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

wKgaomSmH1OAc56GAAACcm_HAAo426.png

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

wKgaomSmH1OAcfzxAAAEYatoBMY746.png

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

wKgZomSmH1OAU4nNAAAETxYy_Gg917.png

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

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

wKgaomSmH1OAJL9SAAAGWULp8LM190.png

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

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

審核編輯:湯梓紅

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

    關(guān)注

    116

    文章

    5886

    瀏覽量

    226400
  • STM32
    +關(guān)注

    關(guān)注

    2312

    文章

    11187

    瀏覽量

    374421
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3370

    瀏覽量

    124368
  • Systick
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    14012
  • 控制電機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    253

    瀏覽量

    19245

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

文章出處:【微信號:單片機(jī)與嵌入式,微信公眾號:單片機(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

    STM32F407通過定時(shí)器控制電機(jī)做正反轉(zhuǎn)正弦運(yùn)動

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

    stm32如何通過pwm控制導(dǎo)軌電機(jī)

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

    stm32電機(jī)控制控制兩路直流電機(jī)!

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

    基于stm32pwm控制電機(jī)速度

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

    stm32如何通過PWM電機(jī)控制?

    stm32如何通過PWM電機(jī)控制?
    發(fā)表于 12-21 06:48

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

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

    PID控制PWM調(diào)節(jié)直流電機(jī)速度

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

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

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

    使用555 IC的PWM控制直流電機(jī)速度

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

    樹莓派通過pwm控制電機(jī)速度

    樹莓派通過脈沖寬度調(diào)制可以控制電機(jī)速度。實(shí)際上在精度要求不是非常高的情況下,普通引腳也可以通過軟件模擬來
    發(fā)表于 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'>電機(jī)</b><b class='flag-5'>速度</b>

    STM32實(shí)現(xiàn)四驅(qū)小車電機(jī)控制任務(wù)之電機(jī)速度PID控制算法

    目錄. 一. 緒論 二. 電機(jī)速度環(huán)PID原理 三. STM32使用CAN總線實(shí)現(xiàn)大疆M3508電機(jī)速度閉環(huán)
    發(fā)表于 05-06 10:28 ?12次下載
    <b class='flag-5'>STM32</b>實(shí)現(xiàn)四驅(qū)小車<b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b>任務(wù)之<b class='flag-5'>電機(jī)</b><b class='flag-5'>速度</b>PID<b class='flag-5'>控制</b>算法

    PWM輸出控制電機(jī)

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

    如何使用PWM控制電機(jī)速度

    伺服電機(jī)是一種能夠精確控制其位置、速度和加速度電機(jī)。它接收來自控制器的指令信號,并據(jù)此調(diào)整其輸
    的頭像 發(fā)表于 06-19 17:39 ?6726次閱讀
    如何使用<b class='flag-5'>PWM</b><b class='flag-5'>控制</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>速度</b>
    莱阳市| 抚顺市| 三江| 禄丰县| 鹰潭市| 乐东| 新兴县| 曲沃县| 雅安市| 西丰县| 马尔康县| 庆安县| 罗甸县| 临猗县| 广水市| 汉沽区| 岱山县| 南涧| 集贤县| 铜梁县| 景泰县| 拜泉县| 栖霞市| 茂名市| 平塘县| 隆林| 榆树市| 中牟县| 潮州市| 天水市| 新宾| 遵化市| 鄂托克前旗| 高安市| 东安县| 桐梓县| 礼泉县| 酉阳| 平利县| 丰原市| 棋牌|