天哪!原來PWM這麼簡單

2022-01-10 電子工程專輯

目錄基本原理

PWM的全稱是脈衝寬度調製Pulse-width modulation),是通過將有效的電信號分散成離散形式從而來降低電信號所傳遞的平均功率的一種方式;

所以根據面積等效法則,可以通過對改變脈衝的時間寬度,來等效的獲得所需要合成的相應幅值頻率的波形;

具體如下圖所示;

由上圖可知,脈衝寬度調製使用一個脈衝寬度會被調製的方波,並且波型的平均值會有所變化。

如果我們考慮一個周期為

上式的描述可以變為:

以上公式可以在很多狀況下被簡化,當

從這裡可以看出,波型的平均值非常明顯地直接與佔空比

佔空比

圖中存在三種佔空比狀態,25%,50%和75%佔空比狀態,不難發現,假設佔空比為D,則滿足:

其中

PWM是如何實現?

PWM實現的原理是通過鋸齒波/三角波(載波)所需要合成的波形(調製波)進行比較,然後確定PWM所需要輸出的極性,通常是ON或者是OFF,因為一般都是作用到開關元器件上;如下圖所示;

振蕩器和比較器

振蕩器輸出的鋸齒波和參考值

在matlab的simulink中搭建了一下仿真,具體如下圖所示;

simulink

最終輸出波形如下:

50%佔空比

這裡簡單說明一下:

鋸齒波(圖中橙色波形)最大為10,然後我希望輸出平均為5的波形(圖1中紅色的水平直線);那麼通過比較,當鋸齒波小於5時;PWM輸出低電平,即為OFF;

所以再換一個思路,如果我希望輸出一個電壓逐漸升高的波形呢,該如何設計呢?

其實很簡單,只要把需要調製的波形設置為斜坡輸出的波形就可以了,具體如下圖所示;

佔空比逐漸增大

可以看到,最終佔空比逐漸從0%增大到100%;

然後我們繼續想,能不能調製出其他的波形,比如調製一個正弦波sin wave,那也就是我們常說的SPWM,其實是可以的,具體如下圖所示;

SPWM分類

參考STM32中PWM的配置,根據載波波形的形狀,假設三角波最大值是10,那麼它的變化過程可能存在以下兩種情況:

完整周期包括兩個過程,先遞增,再遞減:

中央對齊PWM

脈衝波的中心將會被固定在時間窗格的中心,同時脈衝波的兩邊可以移動,使得波的寬度被延伸或壓縮,具體如下圖所示;

中央對齊PWM

另一種類型的PWM脈衝波形如下圖所示;

程序實現

現在的MCU大部分都自帶硬體PWM發生器,即配置好相應的寄存器,就能直接產生PWM,下面的例子基於NUCLEO-F767ZI,通過cubemx配置了三路PWM輸出,然後實現了呼吸燈的效果;

int main(void)
{

 HAL_Init();

 MX_GPIO_Init();
 MX_TIM4_Init();
 MX_TIM3_Init();
 MX_TIM12_Init();

 int32_t time_stamp = 0;
 int32_t time_stamp_old = 0;
 int32_t ccr_val = 0;
 uint8_t add_flag = 1;
 HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_2);
 HAL_TIM_PWM_Start(&htim12, TIM_CHANNEL_1);
 HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3); 
 while (1)
 {
   time_stamp = HAL_GetTick();
   if(time_stamp - time_stamp_old > 5){
   time_stamp_old = time_stamp;
   if(add_flag){
    ccr_val+=25;
    if(ccr_val >= 0xFFFF){
    ccr_val = 0xFFFF;
    add_flag = 0;
   }
   }else{
    ccr_val-=25;
    if(ccr_val <= 0){
     add_flag = 1;
     ccr_val = 0;
    }
   }
   TIM4->CCR2 = ccr_val;
   TIM12->CCR1 = ccr_val;
   TIM3->CCR3 = ccr_val;
   }
 }
}

整體效果如下:

呼吸燈

通過示波器看其中的一路PWM輸出的佔空比也是隨時間變化;

PWM變化情況總結

本文簡單介紹了PWM的原理,以及如何產生PWM,可以通過鋸齒波作為載波和調製波經過比較強,產生相應的PWM輸出波形,最後結合STM32實現了一個呼吸燈的簡單程序。

相關焦點

  • 大佬帶你深入pwm殿堂,搞明白pwm頻率是咋回事
    對於pwm,想必很多朋友都有所耳聞。但是,大家對於pwm真的了解嗎?譬如,pwm頻率是如何被確定下來的?pwm頻率和pwm值是同一個東西嗎?如果不是,pwm頻率和pwm值有什麼區別呢?如果你對這些問題存在疑惑,或者是對本文涉及的pwm相關知識具有興趣,不妨繼續往下閱讀哦。
  • 原來PWM這麼簡單!!
    50%佔空比這裡簡單說明一下:鋸齒波(圖中橙色波形)最大為10,然後我希望輸出平均為5的波形(圖1中紅色的水平直線);那麼通過比較,當鋸齒波小於5時;PWM輸出低電平,即為OFF;其實很簡單,只要把需要調製的波形設置為斜坡輸出的波形就可以了,具體如下圖所示;
  • 你足夠了解pwm嗎?搞清楚pwm控制技術
    pwm是現代重要技術之一,在各種電子設備中,均存在pwm的身影。在往期文章中,小編對pwm原理、pwm佔空比、pwm頻率均有所介紹。為增進大家對pwm的認識,本文將對pwm控制技術予以闡述。如果你對pwm抑或本文即將介紹的內容具有興趣,不妨繼續往下閱讀哦。
  • 脈寬調製原理- -PWM原理
    趕緊跟隨小編來了解一下脈寬調製原理吧~本文引用地址:http://www.eepw.com.cn/article/278262.htm一、脈寬調製原理- -簡介  脈寬調製技術,全稱為脈衝寬度調製,英文名稱為Pulse Width Modulation,簡寫為PWM,是一種利用微處理器來完成對模擬電路控制的一種技術,其具有操作簡單
  • PWM是什麼
    pwm相關文章:pwm是什麼 pwm相關文章:pwm原理
  • 基於SHE-PWM控制的DC-AC電源
    2.2 自動穩壓逆變晶片的功能及引腳使用專用集成電路可使控制電路簡單,縮小體積。本文採用鴻芯泰業公司的單相50HZ自動穩壓逆變電源SHE-PWM控制晶片,該晶片外圍電路元件少,調製比高,輸出波形好,無需編制軟體,性能穩定。
  • PCA9685--16路 PWM模塊舵機驅動板--STM32 IIC接口模塊
    i2c通信,只需要2根i2c線就可以控制16路pwm,周期和佔空比都可控。可以多個模塊級聯。箭頭部分可以更改設備id。可以控制16路輸出端的開、關、pwm以及佔空比。7位的I2C地址為:0x40 + A5:A0,A5到A0如果不做任何處理的話是0,想要把哪一位置1就把那個引腳焊到一起。另外用i2cdetect檢測出還有一個0x70地址一直存在,這是一個通用地址,可以給所有從機下達指令。
  • 北大碩士怒懟三星S20:240Hz pwm=瞎眼屏!
    但是對我來說,100% pwm直接勸退。即使我特別喜歡三星的顏值。(還有一點勸退是因為想用華為全家桶了)別說DC抹布,燒屏,這些我都不在乎,240hz調光我直接流眼淚,DC立馬好了,真的不一樣。白瞎錢就白瞎錢,比瞎眼好多了。
  • 用51單片機實現pwm專題及常見問題 - CSDN
    P3^3;uint qian,bai,shi,ge,zhuansu;uint pwmshi,pwmge;uchar pwmjiasujian); if(pwm<10) { pwm++; pwmshi=
  • PWM DC/DC轉換器電感與電容
    pwm相關文章:pwm原理 電容相關文章:電容原理
  • 警校生的幸福,原來這麼簡單.
    或許,警校生的幸福有時連身處其中的人也難以察覺,直到多年以後驀然回首,原來幸福一直都在。和普通大學生相比,警校生的生活或許單調乏味,堪稱三點一線,哪有半點其他大學生的自由自在。和老同學閒聊,將1200米說成家常便飯顯得匪夷所思,五公裡測速似乎更是天方夜譚,他們調侃從走路速度就能看出誰是單身,從走路方式就能看出誰是警校生。警校生的時間總是被安排得滿滿的。
  • 看它如何控制PWM信號實現直流電機轉速控制~
    /四位速度值存儲float bianhuasudu; //當前速度(理論計算值)float reallyspeed; //實際測得的速度float vv_min=0.0;vv_max=250.0;float vi_Ref=60.0; //給定值float vi_PreError,vi_PreDerror;uint pwm
  • 基於降壓型PWM的DC-DC轉換器的控制方案
    pwm相關文章:pwm是什麼 電路圖符號相關文章:電路圖符號大全 pwm相關文章:pwm原理
  • 電感電流斷續時Boost升壓式PWM DC/DC轉換器的工作原理和基本關係
    pwm相關文章:pwm是什麼 pwm相關文章:pwm原理
  • 原來催熟芒果這麼簡單,學會這個小技巧,2天就熟透了,更香甜了
    原來催熟芒果這麼簡單,學會這個小技巧,2天就熟透了,更香甜了。大家好,我是琦哥說美食,祝大家開心每一天。芒果這麼好吃,網購的朋友反映,購買到的芒果都是沒成熟的。一位芒果種植地的果農稱,因為芒果是後熟的水果,採摘時的成熟度大概是在8成。放置的過程中,因為自身受熱,會慢慢變成熟。市場上水果店賣的芒果,商家都會自己催熟,會在芒果上噴灑乙烯催熟,只需要半天的時間,就可以將5成熟的芒果變成熟。
  • PWM控制MOSFET搭建的H橋電路驅動直流電機仿真與單片機源碼
    測試用例:(PWM控制led亮度的漸變 發表於 2020-09-11 51單片機溫度+pwm控制風扇轉速,且溫度在LCD1602上顯示 ; unsigned
  • 基於ATmega8的直流電機PWM調速控制系統設計與實現
    本文引用地址:http://www.eepw.com.cn/article/162036.htm一、引言直流電機因具有良好的線性調速特性、效率高、控制簡單、調速性能好及體積小等優點得到了廣泛使用。它可以通過改變對開關管的控制方式,而使直流電機電樞兩端獲得比PWM控制信號頻率高1倍的電壓波,可以彌補受限單極驅動所產生的電流斷流的問題,具有驅動能力強、控制簡單、可靠性高且成本低等優點。
  • 基於Cortex-A9的pwm詳解——PWM信號輸出輸出和作用
    1)可以直接通過晶片內部模塊輸出PWM信號,前提是這個I/O口要有集成的pwm控制器,只需要通過對應的寄存器即可,這種自帶有PWM輸出的功能模塊在程序設計更簡便,同時數據更精確。2)但是如果IC內部沒有PWM功能模塊,或者要求不是很高的話可以利用I/O口設置一些參數來輸出PWM信號,因為PWM 信號其實就是一高一低的一系列電平組合在一起。
  • 今天才知道,原來發豆芽這麼簡單,5天就能吃,比買的還脆嫩新鮮
    今天才知道,原來發豆芽這麼簡單,5天就能吃,比買的還脆嫩新鮮!很多人可能都有這麼一段記憶:小學自然老師要大家帶綠豆,用沾溼的棉花或衛生紙當介質,將綠豆平鋪在上頭,每天澆水並詳細觀察綠豆生長的情形。儘管離開自然課的年代有段不短的時間,還是會想看看綠豆到底怎麼出芽的。
  • 了解其中原因後,網友:原來這麼簡單!
    了解其中原因後,網友:原來這麼簡單!在野外的晚上有著許多的生物,特別是到了夏天,各種動物也都忙碌了起來。如果我們晚上去郊外的花園散步,就能夠看到點點微弱的星光,這些星光就是螢火蟲發出的光亮。那為什麼螢火蟲能發光呢,讓我們來一探究竟。在許多小朋友看來,螢火蟲是打著燈籠才能發光的,其實這是對螢火蟲一種美好的幻想。