chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

利用STM32定時(shí)器實(shí)現(xiàn)呼吸燈

GReq_mcu168 ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 作者:玩轉(zhuǎn)單片機(jī) ? 2020-10-10 14:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

實(shí)驗(yàn)?zāi)繕?biāo)

利用STM32定時(shí)器產(chǎn)生PWM信號(hào);

利用PWM信號(hào)實(shí)現(xiàn)呼吸燈。

什么是PWM信號(hào)呢?

PWM,英文名Pulse Width Modulation。

PWM信號(hào)是一種脈寬調(diào)制信號(hào),廣范用于LED電機(jī)控制等場(chǎng)合。

PWM信號(hào)其實(shí)類似于方波,只有0和1兩種狀態(tài)。

PWM信號(hào)可以調(diào)節(jié)占空比。

不同占空比可以使LED產(chǎn)生不同的亮度。

占空比就是指在一個(gè)周期內(nèi), 信號(hào)處于高電平的時(shí)間占據(jù)整個(gè)信號(hào)周期的百分比, 例如上圖中所示脈沖的占空比就是25%。

PWM波可以由GPIO口產(chǎn)生,通過(guò)GPIO口輸出高電平,延時(shí),輸出低電平,延時(shí)來(lái)產(chǎn)生PWM波。

還可以使用定時(shí)器,利用比較寄存器形成PWM。

本實(shí)驗(yàn)就是利用PWM信號(hào)這一特性控制LED產(chǎn)生不同亮度,從而實(shí)現(xiàn)呼吸燈的效果。

PWM信號(hào)應(yīng)用場(chǎng)景

我們經(jīng)常見(jiàn)到的就是交流調(diào)光電路,高電平占多一點(diǎn),也就是占空比大一點(diǎn)亮度就亮一點(diǎn),占空比小一點(diǎn)亮度就沒(méi)有那么亮,前提是PWM的頻率要大于我們?nèi)搜圩R(shí)別頻率,要不然會(huì)出現(xiàn)閃爍現(xiàn)象。

除了在調(diào)光電路應(yīng)用,還有在直流斬波電路、蜂鳴器驅(qū)動(dòng)、電機(jī)驅(qū)動(dòng)、逆變電路、加濕機(jī)霧化量等都會(huì)有應(yīng)用。

PWM信號(hào)如何輸出呢?

1)可以直接通過(guò)芯片內(nèi)部模塊輸出PWM信號(hào),前提是這個(gè)I/O口要有PWM集成模塊,自帶PWM功能的芯片只需要簡(jiǎn)單幾步操作即可實(shí)現(xiàn)PWM功能。這種自帶有PWM輸出的功能模塊在程序設(shè)計(jì)更簡(jiǎn)便,同時(shí)數(shù)據(jù)更精確。如下圖,一般的IO口都會(huì)標(biāo)明這個(gè)GPIO是否是PWM口;

STM32單片機(jī)就是標(biāo)識(shí)如下形式:TIMx_CHy這樣的形式,下圖中所示的PWM引腳即占用TIM1的通道1。

2)但是如果IC內(nèi)部沒(méi)有PWM功能模塊,或者要求不是很高的話可以利用I/O口結(jié)合定時(shí)器輸出PWM信號(hào),因?yàn)镻WM信號(hào)其實(shí)就是一高一低的一系列電平組合在一起。具體方法是給I/O加一個(gè)定時(shí)器,輸出的PWM信號(hào)頻率與你的定時(shí)器一致,用定時(shí)器中斷來(lái)計(jì)數(shù),但是這種方法一般不采用,除非對(duì)于精度、頻率等要求不是很高可以這樣實(shí)現(xiàn)。

LED使用的引腳:

原理圖

由上面的原理圖可知,當(dāng)LED1和LED2引腳為高電平的時(shí)候,LED滅;當(dāng)引腳為低電平的時(shí)候,LED亮。

一個(gè)周期內(nèi)低電平占比越來(lái)越少,高電平占空比越來(lái)越高,LED越來(lái)越暗。

具體實(shí)現(xiàn)

1. LED引腳PB8、PB9初始化

注意 GPIO_Mode 要設(shè)置為:GPIO_Mode_AF_PP

voidLED_Init(void) { GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); }

2. TIM4_CH3和TIM4_CH4初始化

voidLed_PWM_Init(u16arr,u16psc) { TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure; TIM_OCInitTypeDefTIM_OCInitStructure; NVIC_InitTypeDefNVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); LED_Init(); TIM_DeInit(TIM4); /*TimeBaseconfiguration*/ TIM_TimeBaseStructure.TIM_Period=arr; TIM_TimeBaseStructure.TIM_Prescaler=psc; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_ClockDivision=0; TIM_TimeBaseStructure.TIM_RepetitionCounter=0; TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse=0; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High; TIM_OC3Init(TIM4,&TIM_OCInitStructure); TIM_OC4Init(TIM4,&TIM_OCInitStructure); TIM_CtrlPWMOutputs(TIM4,ENABLE); TIM_OC3PreloadConfig(TIM4,TIM_OCPreload_Enable); TIM_OC4PreloadConfig(TIM4,TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM4,ENABLE); TIM_Cmd(TIM4,ENABLE); }

其中參數(shù)arr為重載值,psc為TIMx時(shí)鐘頻率的預(yù)分頻系數(shù)。

設(shè)置定時(shí)器的周期:

PWM的周期一般要設(shè)置到50Hz以上,否則,我們會(huì)看到明顯的視覺(jué)閃爍。

設(shè)置定時(shí)器的周期需要改變ARR和PSC兩個(gè)寄存器的值來(lái)控制輸出PWM的周期。

在STM32的庫(kù)函數(shù)中,

TIM_TimeBaseStructure.TIM_Period即設(shè)置的ARR寄存器,溢出計(jì)數(shù)值,(如有中斷)達(dá)到這個(gè)值就中斷,對(duì)應(yīng)參數(shù)arr;

TIM_TimeBaseStructure.TIM_Prescaler即設(shè)置的PSC寄存器,對(duì)應(yīng)預(yù)分頻系數(shù)參數(shù)psc。

TIM_TimeBaseStructure.TIM_Period=arr; TIM_TimeBaseStructure.TIM_Prescaler=psc; TIM_TimeBaseStructure.TIM_ClockDivision=0; TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);

應(yīng)用

Led_PWM_Init(899,0);

psc為0,表示初始化PWM對(duì)應(yīng)的定時(shí)器不分頻,仍舊為72MHz,arr為899,代表PWM的頻率為:72000/(899+1)=80KHz。周期等于頻率的倒數(shù),即1/80KHz=12.5us。

while(1) { //呼吸燈 if(dir) led0pwmval++; else led0pwmval--; if(led0pwmval>900) dir=0; if(led0pwmval==0) dir=1; TIM_SetCompare3(TIM4,led0pwmval);//CH3綠色 TIM_SetCompare4(TIM4,led0pwmval);//CH4紅色 delay_ms(1); }

其中代碼:

TIM_SetCompare3(TIM4,led0pwmval);//CH3綠色 TIM_SetCompare4(TIM4,led0pwmval);//CH4紅色

就是調(diào)節(jié)定時(shí)器TIM4的通道3和通道4的占空比,當(dāng)計(jì)數(shù)時(shí)間達(dá)到led0pwmval時(shí)電平翻轉(zhuǎn),比如默認(rèn)0-arr都為高電平,如TIM_SetCompare的值為arr/2,就是0-arr/2 為低電平,arr/2-arr為高電平,占空比 50%。

TIM_SetCompare設(shè)置的值就是設(shè)置的CCRx。由上面的圖可知,CCRx/ARR就是占空比,由于占空比不能大于1,CCRx的值肯定不能大于ARR了。

比如我們執(zhí)行如下代碼:

TIM_SetCompare3(TIM4,450);//CH3綠色 TIM_SetCompare4(TIM4,450);//CH4紅色

示波器中可以看到如下效果:

從上我們可以看到:

脈沖頻率是:80KHz

周期是:12.50us

占空比:50% (450/(899+1))

跟上面的我們?cè)O(shè)置的值是一致的。

實(shí)現(xiàn)的效果

視頻中的板子就是2020.06每月活動(dòng)智能風(fēng)扇使用的板子。

由核心板+底板的形式組成,待月底全部功能實(shí)現(xiàn)并驗(yàn)證沒(méi)有問(wèn)題之后,開源原理圖和PCB圖給大家下載自行搭建測(cè)試。

本文的PWM控制LED實(shí)現(xiàn)呼吸燈的原理,其實(shí)就是我們控制風(fēng)扇轉(zhuǎn)速的原理,有了本節(jié)課的知識(shí),我們就可以控制風(fēng)扇的轉(zhuǎn)速了。

原文標(biāo)題:利用PWM原理,實(shí)現(xiàn)呼吸燈功能

文章出處:【微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    116

    文章

    5521

    瀏覽量

    219444
  • 呼吸燈
    +關(guān)注

    關(guān)注

    10

    文章

    112

    瀏覽量

    43233

原文標(biāo)題:利用PWM原理,實(shí)現(xiàn)呼吸燈功能

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    【沁恒CH585開發(fā)板免費(fèi)試用體驗(yàn)】+PWM呼吸

    根據(jù)官方提供的關(guān)于該開發(fā)板的數(shù)據(jù)手冊(cè)“CH585DS1.PDF”中有介紹,定時(shí)器Timer和脈寬調(diào)制PWM資源有以下: 4組26位定時(shí)器,16MHz主頻定時(shí)可達(dá)4.2S 4路捕捉/采樣,支持上升沿
    發(fā)表于 07-03 19:02

    stm32H743定時(shí)器溢出的原因?怎么解決?

    利用定時(shí)器更新中斷實(shí)現(xiàn)軟件計(jì)時(shí),定時(shí)時(shí)間是固定的按照{(diào)10ms, 20ms,650ms, 50ms,50ms}周期性進(jìn)行的。由于下一次的計(jì)時(shí)時(shí)間是需要在
    發(fā)表于 06-23 08:26

    MCU定時(shí)器/計(jì)數(shù)

    RISC-V核低功耗MCU通過(guò)靈活的定時(shí)器架構(gòu)、低功耗模式適配及硬件級(jí)中斷優(yōu)化,在工業(yè)控制、智能家居等場(chǎng)景中實(shí)現(xiàn)高精度計(jì)時(shí)與能耗控制的協(xié)同設(shè)計(jì),滿足復(fù)雜任務(wù)調(diào)度與實(shí)時(shí)響應(yīng)的雙重需求?。 一、?硬件
    的頭像 發(fā)表于 04-27 13:54 ?303次閱讀

    STM32Cube配置RTOS時(shí)定時(shí)器如何選擇?

    STM32Cube配置RTOS時(shí)定時(shí)器如何選擇
    發(fā)表于 03-07 08:47

    stm32同一個(gè)定時(shí)器不同的通道,可以不同時(shí)的輸出pwm波形嗎?

    請(qǐng)問(wèn),stm32的同一個(gè)定時(shí)器,不同的通道,可以不同時(shí)的輸出pwm波形嗎?比如tim1的ch1輸出,延時(shí)幾毫秒后tim1的ch2輸出。 現(xiàn)在是要輸出兩個(gè)相位不同的pwm波形,延時(shí)時(shí)間、頻率、占空比
    發(fā)表于 03-07 08:20

    基于FPGA的呼吸設(shè)計(jì)(附源工程)

    ,起到一個(gè)通知提醒的作用。 設(shè)計(jì)原理 關(guān)于呼吸設(shè)計(jì)實(shí)現(xiàn)的理論主要是PWM有關(guān)知識(shí)。PWM(Pluse Width Modulation)脈沖寬度調(diào)制,是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法。通過(guò)高分辨率計(jì)數(shù)
    的頭像 發(fā)表于 01-16 10:09 ?818次閱讀
    基于FPGA的<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>設(shè)計(jì)(附源工程)

    詳解CKS32F107xx系列的定時(shí)器同步功能

    CKS32F107xx系列部分定時(shí)器在內(nèi)部是相連的,可用于定時(shí)器同步或鏈接,方便用戶配置不同的同步模式,以便在電機(jī)控制、數(shù)據(jù)采集和PWM信號(hào)生成等應(yīng)用中,實(shí)現(xiàn)復(fù)雜的時(shí)間序列和多通道的同步操作。本節(jié)課
    的頭像 發(fā)表于 11-26 17:51 ?1061次閱讀
    詳解CKS32F107xx系列的<b class='flag-5'>定時(shí)器</b>同步功能

    請(qǐng)問(wèn)PurePath Studio有定時(shí)器控件嗎?用AIC3254如何實(shí)現(xiàn)毫秒級(jí)的定時(shí)?

    PurePath Studio有定時(shí)器控件嗎?用AIC3254如何實(shí)現(xiàn)毫秒級(jí)的定時(shí)?
    發(fā)表于 10-25 07:26

    呼吸的概念和實(shí)現(xiàn)原理

    呼吸在日常生活中經(jīng)常見(jiàn)到,如電子時(shí)鐘,小夜燈等等,本文我們介紹下通過(guò)PWM波來(lái)控制LED實(shí)現(xiàn)呼吸
    的頭像 發(fā)表于 10-24 14:50 ?5237次閱讀
    <b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的概念和<b class='flag-5'>實(shí)現(xiàn)</b>原理

    燈光定時(shí)器自動(dòng)控制怎么調(diào)

    燈光定時(shí)器自動(dòng)控制是一種智能家居設(shè)備,它允許用戶設(shè)定特定的時(shí)間來(lái)開啟或關(guān)閉燈光,從而實(shí)現(xiàn)節(jié)能和自動(dòng)化控制。這種設(shè)備通??梢酝ㄟ^(guò)物理按鈕、遙控或者智能手機(jī)應(yīng)用程序來(lái)設(shè)置。 燈光
    的頭像 發(fā)表于 10-17 14:13 ?4229次閱讀

    定時(shí)器自動(dòng)控制開關(guān)怎么設(shè)置

    定時(shí)器自動(dòng)控制開關(guān)是一種常見(jiàn)的自動(dòng)化設(shè)備,廣泛應(yīng)用于家庭、工業(yè)、農(nóng)業(yè)等多個(gè)領(lǐng)域。通過(guò)定時(shí)器,用戶可以預(yù)設(shè)時(shí)間,讓設(shè)備在特定時(shí)間自動(dòng)開啟或關(guān)閉,從而實(shí)現(xiàn)節(jié)能、提高效率和便利性。 一、
    的頭像 發(fā)表于 09-19 16:19 ?4101次閱讀

    如何在MSP430?上實(shí)現(xiàn)內(nèi)置振蕩的高精度定時(shí)器

    電子發(fā)燒友網(wǎng)站提供《如何在MSP430?上實(shí)現(xiàn)內(nèi)置振蕩的高精度定時(shí)器.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 11:10 ?0次下載
    如何在MSP430?上<b class='flag-5'>實(shí)現(xiàn)</b>內(nèi)置振蕩<b class='flag-5'>器</b>的高精度<b class='flag-5'>定時(shí)器</b>

    使用STM32CubeMX輸出PWM,并制作呼吸效果

    概述 本篇文章主要介紹如何使用STM32CubeMX輸出PWM,并制作呼吸效果。 硬件準(zhǔn)備 首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備的是NUCLEO-F030R8的開發(fā)板: 選擇芯片型號(hào) 配置時(shí)鐘源
    發(fā)表于 09-04 10:38

    定時(shí)器的基本組成和工作模式

    定時(shí)器是計(jì)算機(jī)或電子設(shè)備中常見(jiàn)的一個(gè)硬件或軟件組件,其主要功能是測(cè)量和控制時(shí)間的流逝。它在各種應(yīng)用中起著至關(guān)重要的作用,如操作系統(tǒng)調(diào)度、多媒體播放、網(wǎng)絡(luò)通信、工業(yè)自動(dòng)化控制以及家電設(shè)備的定時(shí)功能等。定時(shí)器的工作原理基于時(shí)序控制,
    的頭像 發(fā)表于 08-19 18:28 ?2786次閱讀