疯壳AI开源无人机PWM(电机控制)
一、PWM簡介
脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫,簡稱脈寬調(diào)制,是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中。
PWM在生活中非常的常見,小到呼吸燈的閃爍,達到航天飛船都會應(yīng)用到PWM技術(shù)。PWM的波形如下圖所示。
二、占空比簡介
占空比是脈沖寬度調(diào)制技術(shù)中常用專業(yè)術(shù)語,占空比是指在一個時鐘脈沖周期(T)內(nèi),高電平(t1)的時間占總周期時間的比值,即占空比(duty)=t1/T*100%
如下圖所示是一系列典型的脈沖波形。
???? 第一個PWM波,周期為10ms,高電平的時間為4ms,所以占空比為40%,同理第二個PWM波為60%,第三個為80%。
一般地,占空比反映了等效幅值的大小:占空比越大,等效幅值越高;占空比越小,等效幅值越低。如下圖所示為不同占空比對應(yīng)等效幅值的關(guān)系示意圖。
- STM32的PWM模式
STM32上定時器有專門的PWM模式,它的原理是通過定時器使用比較輸出的方式如下圖所示產(chǎn)生波形。
ARR為自動重載寄存器,CCR為捕獲/比較寄存器,CNT就是定時器的計數(shù)器,CNT的值從0開始遞增,使用PWM模式后,可以設(shè)置有效電平,以及PWM的模式。上圖所示的是當CNT的值小于CCRx時,輸出低電平,當CNT的值大于CCRx時,輸出高點平,所以我們可以通過改變ARR的值來改變PWM的周期,改變CCRx的值來改變PWM的占空比,從而實現(xiàn)任意頻率任意占空比的PWM波。
- 寄存器
STM32的PWM輸出模式涉及到以下寄存器。
(1)TIMx_CR1:定時器控制寄存器1,如下圖所示。
其中CKD來設(shè)置時鐘分頻,ARPE來使能自動重載預(yù)裝載,CEN來使能計數(shù)器。
(2)TIMx_CCMR1:定時器捕獲比較模式寄存器,如下圖所示。
? OC1M來配置PWM的模式,PWM模式1,CNT<CCR1時為有效狀態(tài)、CNT>CCR1時為無效狀態(tài);PWM模式2,CNT<CCR1為無效狀態(tài)、CNT>CCR1為有效狀態(tài)。OC1PE來使能預(yù)裝載。CC1S來配置通道的輸入輸出模式(默認為輸出模式)。
CC1P來配置輸出極性,可以選擇高電平有效或者低電平有效。CC1E來使能捕獲/比較。
五、PWM電機控制實驗
PWM電機控制實驗使用STM32的定時器的PWM輸出功能,可對飛控上的電機所在的引腳,產(chǎn)生不同占空比的PWM,從而實現(xiàn)讓四個電機以不同的速度旋轉(zhuǎn)。(注意:做實驗的時候,占空比不要調(diào)節(jié)過大,該實驗會使旋翼轉(zhuǎn)動,要小心無人機的旋翼劃傷手)無人機的四個旋翼如下圖所示。
?
根據(jù)原理圖,可以看到四個電機分別由兩個AO9926C控制,AO9926C其實想當于是兩路的N溝道MOS管,兩個AO9926C的四個MOS管的G極(柵極)接口分別是:PB6、PB7、PB8、PB9,如下圖所示。
?
查看數(shù)據(jù)手冊可知,PB6、PB7、PB8、PB9分別對應(yīng)的是TIM4_CH1、TIM4_CH2、TIM4_CH3、TIM4_CH4,即定時器4的輸出通道1~4。
配置輸出PWM的代碼編寫的思路如下:
| 1 | 管腳配置 | 1、定義結(jié)構(gòu)體; 2、使能時鐘; 3、填充結(jié)構(gòu)體; 4、裝載結(jié)構(gòu)體。 |
| 2 | 定時器配置 | 1、定義結(jié)構(gòu)體; 2、使能時鐘; 3、填充結(jié)構(gòu)體; 4、裝載結(jié)構(gòu)體。 |
| 3 | PWM輸出參數(shù)配置 | 1、定義結(jié)構(gòu)體; 2、填充結(jié)構(gòu)體; 3、裝載結(jié)構(gòu)體; 4、使能輸出。 |
| 4 | 改變占空比 | 1、改變占空比參數(shù)。 |
?
?
定時器PWM輸出的初始化代碼如下:
裝載不同的CCR值,產(chǎn)生不同的占空比,從而使四個電機以不同的速度旋轉(zhuǎn),代碼如下圖所示。
其中TIM4_CH1裝載CCR值為25、TIM4_CH2裝載CCR值為50、TIM4_CH3裝載CCR值為75、TIM4_CH4裝載CCR值為100。如下圖所示。
保存、編譯、下載代碼(注意旋翼會轉(zhuǎn)動,小心劃傷),可以看到四個旋翼以不同的速度轉(zhuǎn)動,其中轉(zhuǎn)速的排序為接在PB6的電機<接在PB7的電機<接在PB8的電機<接在PB9的電機。
總結(jié)
以上是生活随笔為你收集整理的疯壳AI开源无人机PWM(电机控制)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM笔记:Java虚拟机的字节码指令详
- 下一篇: 【AI视野·今日CV 计算机视觉论文速览