PWM控制電機

2021-10-15 00:25:29 字數 1898 閱讀 3527

脈衝寬度調製(pwm),是英文「pulse width modulation」的縮寫,簡稱脈寬調變,是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量、通訊到功率控制與變換的許多領域中。 ​

占空比指的是高低電平所佔的時間的比率,占空比越大,電路開通時間就越長,整機效能就越高。方波的占空比為50%,占空比為0.5,說明正電平所佔時間為0.5個週期。如下圖:

以微控制器為例,我們知道,微控制器的io口輸出的是數碼訊號,io口只能輸出高電平和低電平

假設高電平為5v 低電平則為0v 那麼我們要輸出不同的模擬電壓,就要用到pwm,通過改變io口輸出的方波的占空比從而獲得使用數碼訊號模擬成的模擬電壓訊號

我們知道,電壓是以一種連線1或斷開0的重複脈衝序列被夾到模擬負載上去的(例如led燈,直流電機等),連線即是直流供電輸出,斷開即是直流供電斷開。通過對連線和斷開時間的控制,理論上來講,可以輸出任意不大於最大電壓值(即0~5v之間任意大小)的模擬電壓

比方說 占空比為50% 那就是高電平時間一半,低電平時間一半,在一定的頻率下,就可以得到模擬的2.5v輸出電壓 那麼75%的占空比 得到的電壓就是3.75v

總結:pwm就是在合適的訊號頻率下,通過乙個週期裡改變占空比的方式來改變輸出的有效電壓

pwm頻率越大,相應越快。

使用pwm輸出是首先要看,那個引腳使用可以使用pwm輸出。

高階控制和通用定時器通道引腳分布:

pwm配置步驟:

1,使能定時器3和相關io時鐘(led-pb5)

使能定時器3時鐘:rcc_apb1periphclockcmd();

使能gpiob時鐘:rcc_apb2periphclockcmd();

2,初始化io口為復用功能輸出 gpio_init();

gpio_initstructure.gpio_mode = gpio_mode_af_pp;

3,pb5輸出pwm(定時器3通道2),需要部分衝突對映

rcc_apb2periphclockcmd(rcc_apb2periph_afio,enable);//開啟afio時鐘設定

gpio_pinremapconfig(gpio_partialremap_tim3, enable);//部分重對映

4,初始化定時器 (重裝載值arr,與分頻係數psc等)

tim_timebaseinit();//決定pwm週期

5,初始化輸出比較引數:

tim_oc2init();//通道2輸出比較初始化

6,使能預裝載暫存器

tim_oc2preloadconfig(tim3, tim_ocpreload_enable);//定時器3 通道2

7,使能定時器

tim_cmd();

void

tim3_int_init

(u16 arr,u16 psc)

//定時器3中斷服務程式

void

tim3_irqhandler

(void

)//tim3中斷

}void

tim3_pwm_init

(u16 arr,u16 psc)

main.c

int

main

(void)}

}

STM32 電機PWM控制

2.1.1 實現工具 stm32微控制器 直流減速電機 tb6612雙路電機驅動器 keil5 2.1.2 電機實物接線 具體到我們的電機,我們可以看看電機後面的 中間的四根線 紅綠白黑 是編碼器的線,只是用於測速,和直流電機本身沒有聯絡。綜上所述,我們只需控制施加在黃線和棕色線兩端的直流電壓大小和...

PWM脈衝數控制步進電機

最近在學步進電機,為了準備2017的暑假電賽,萬一不小心用到尼。說起步進電機,我們就聊一聊步進電機的那些事,我想起在這之前 還用了l298n來驅動電機,那真是乙個悲慘的故事,過程就不說出了讓大家開心開心了。故事結果就是步進電機理都不理我,就是不轉。可見驅動的適合很重要,就像你要找女朋友是一樣的,適合...

STM32F103的PWM電機控制

目錄 選擇tim ch 1 gpio配置輸出 定時器配置 呼叫函式使用 初次易錯點 使用 輸出是首先要看,那個引腳使用可以使用 輸出。高階控制和通用定時器通道引腳分布 高階定時器 通用定時器 tim1 tim8 tim2 tim5 tim3 tim4 ch1 pa8 pe9 pc6pa0 pa15 ...