国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

 巧妙利用pwm原理,PWM控制LED實現(xiàn)呼吸燈

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

掃碼添加小助手

加入工程師交流群

實驗?zāi)繕?biāo)

利用STM32定時器產(chǎn)生PWM信號

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

什么是PWM信號呢?

PWM,英文名Pulse Width Modulation。

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

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

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

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

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

PWM波可以由GPIO口產(chǎn)生,通過GPIO口輸出高電平,延時,輸出低電平,延時來產(chǎn)生PWM波。

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

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

PWM信號應(yīng)用場景

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

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

PWM信號如何輸出呢?

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

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

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

LED使用的引腳:

原理圖

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

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

具體實現(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時鐘頻率的預(yù)分頻系數(shù)。

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

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

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

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

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

TIM_TimeBaseStructure.TIM_Prescaler即設(shè)置的PSC寄存器,對應(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對應(yīng)的定時器不分頻,仍舊為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é)定時器TIM4的通道3和通道4的占空比,當(dāng)計數(shù)時間達(dá)到led0pwmval時電平翻轉(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))

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

實現(xiàn)的效果

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

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

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

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

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

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

    關(guān)注

    243

    文章

    24569

    瀏覽量

    690057
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    116

    文章

    5864

    瀏覽量

    225183
  • PWM信號
    +關(guān)注

    關(guān)注

    3

    文章

    107

    瀏覽量

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

    關(guān)注

    10

    文章

    117

    瀏覽量

    44039
  • stm32定時器
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    2526

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    【瑞薩FPB-RA6E2試用】【瑞薩FPB-RA6E2】基于 PWM(脈寬調(diào)制)的 LED 呼吸-閃爍效果及設(shè)備樹理解

    呼吸效果 :雖然本例是變頻而非調(diào)光,但類似邏輯可擴展為占空比漸變,實現(xiàn)柔和的“呼吸”氛圍(常見于消費電子、智能家居)。 2. 電機速
    發(fā)表于 01-13 15:05

    PWM經(jīng)典應(yīng)用:LED亮度控制呼吸實戰(zhàn)

    信號生成: 加熱控制: 本文特別分享PWM相關(guān)基礎(chǔ)知識,并以Air8000核心板為例,演示LuatOS開發(fā)中如何使用PWM功能實現(xiàn)LED亮度
    的頭像 發(fā)表于 01-05 20:50 ?188次閱讀
    <b class='flag-5'>PWM</b>經(jīng)典應(yīng)用:<b class='flag-5'>LED</b>亮度<b class='flag-5'>控制</b>及<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>實戰(zhàn)

    PWM 控制 LED、蜂鳴器、電機:你真的用對了嗎?

    在做嵌入式開發(fā)的時候,PWM(脈寬調(diào)制)幾乎是必學(xué)技能。LED想要呼吸效果?PWM。蜂鳴器要發(fā)“滴滴”的提示音?PWM。電機需要調(diào)速?還是
    的頭像 發(fā)表于 01-04 09:14 ?430次閱讀
    <b class='flag-5'>PWM</b> <b class='flag-5'>控制</b> <b class='flag-5'>LED</b>、蜂鳴器、電機:你真的用對了嗎?

    基于PWMLED調(diào)光技術(shù)與呼吸實現(xiàn)方法!

    利用PWM技術(shù)控制LED亮度,不僅效率高、響應(yīng)快,還能實現(xiàn)細(xì)膩的視覺過渡。系統(tǒng)介紹PWM的工作機
    的頭像 發(fā)表于 12-15 13:03 ?382次閱讀
    基于<b class='flag-5'>PWM</b>的<b class='flag-5'>LED</b>調(diào)光技術(shù)與<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b><b class='flag-5'>實現(xiàn)</b>方法!

    FZH367 具有獨立自動呼吸功能的LED(12×16)點陣驅(qū)動芯片 原廠技術(shù)支持

    概述 型號:FZH367FZH367是一種具有獨立自動呼吸功能的LED(12×16)點陣驅(qū)動芯片。芯片通過I2C協(xié)議控制每個LED實現(xiàn) 3
    發(fā)表于 11-18 09:18

    原廠 FZH365 具有獨立自動呼吸功能的LED(12×12)點陣驅(qū)動芯片

    是一種具有獨立自動呼吸功能的LED(12×12)點陣驅(qū)動芯片。芯片通過I2C協(xié)議控制每個 LED實現(xiàn) 3 種自動
    發(fā)表于 11-17 09:38

    LuatOS中PWM實現(xiàn)LED亮度調(diào)節(jié)與呼吸的實戰(zhàn)教程

    PWMLED亮度調(diào)節(jié)和呼吸效果實現(xiàn)方面有著廣泛應(yīng)用。在LuatOS環(huán)境中,如何高效運用PWM
    的頭像 發(fā)表于 11-11 19:05 ?8439次閱讀
    LuatOS中<b class='flag-5'>PWM</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>LED</b>亮度調(diào)節(jié)與<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的實戰(zhàn)教程

    PWM信號是如何控制舵機的?

    ?PWM(脈沖寬度調(diào)制)信號控制舵機的核心原理是通過固定周期內(nèi)高電平的持續(xù)時間(脈寬)對應(yīng)舵機的旋轉(zhuǎn)角度,舵機內(nèi)部電路根據(jù)檢測到的脈寬驅(qū)動電機轉(zhuǎn)動到目標(biāo)位置并保持。以下是具體實現(xiàn)過程: 一、核心
    的頭像 發(fā)表于 09-29 10:48 ?1134次閱讀

    一文讀懂 PWM控制背光亮度原理

    色彩失真的技術(shù)難題。 總結(jié) PWM調(diào)光的本質(zhì),就是通過極高頻率的“開-關(guān)”循環(huán),并精密地調(diào)整“開”的時間比例,利用人眼的視覺暫留效應(yīng)來“欺騙”大腦,從而實現(xiàn)對平均亮度的無級控制。 實
    發(fā)表于 09-03 08:48

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

    /下降沿/雙邊沿 4路26位PWM輸出 8路8位PWM輸出或前6路16位PWM輸出 今天在上期的點燈例程上,修改出兩路PWM輸出,讓開發(fā)板上的LED
    發(fā)表于 07-03 19:02

    使用單片機驅(qū)動多組LED實現(xiàn)呼吸效果電路

    各位大佬,請教下,當(dāng)前我需要使用單片機驅(qū)動控制20路并聯(lián)LED,需要PWM驅(qū)動實現(xiàn)呼吸
    發(fā)表于 04-11 14:24

    LED6001 PWM調(diào)光單通道LED驅(qū)動器,具有集成增壓控制器數(shù)據(jù)手冊

    的亮度可以通過兩個獨立的引腳通過 PWM 調(diào)光和模擬調(diào)光(10:1 比率)來控制。通過與 LED 串串聯(lián)并由專用引腳直接驅(qū)動的 MOSFET,可以獲得增強的
    的頭像 發(fā)表于 04-09 17:37 ?1092次閱讀
    <b class='flag-5'>LED</b>6001 <b class='flag-5'>PWM</b>調(diào)光單通道<b class='flag-5'>LED</b>驅(qū)動器,具有集成增壓<b class='flag-5'>控制</b>器數(shù)據(jù)手冊

    【幸狐Omni3576邊緣計算套件試用體驗】PWM呼吸

    【幸狐Omni3576邊緣計算套件試用體驗】PWM呼吸 本文介紹了幸狐Omni3576邊緣計算套件實現(xiàn) GPIO 輸出電平的控制
    發(fā)表于 04-03 04:59

    【瑞薩RA2L1入門學(xué)習(xí)】+PWM呼吸

    1.新建項目 2.PWM 脈沖寬度調(diào)制是一種模擬控制方式,根據(jù)相應(yīng)載荷的變化來調(diào)制晶體管基極或MOS管柵極的偏置,來實現(xiàn)晶體管或MOS管導(dǎo)通時間的改變,從而實現(xiàn)開關(guān)穩(wěn)壓電源輸出的改變
    發(fā)表于 03-30 22:28

    【瑞薩RA2L1入門學(xué)習(xí)】01. PWM 呼吸

    占空比的調(diào)節(jié)就是實現(xiàn)呼吸效果的關(guān)鍵。通過控制PWM信號的占空比,可以實現(xiàn)
    發(fā)表于 03-07 11:43