本項(xiàng)目通過(guò)單片機(jī)I/O口輸出一個(gè)PWM脈寬調(diào)制信號(hào)來(lái)控制輸送到LED燈的電壓變化,從而實(shí)現(xiàn)控制發(fā)光二極管亮度的效果。通過(guò)兩個(gè)按鍵控制燈的亮度。系統(tǒng)上電時(shí),燈在最暗狀態(tài),按住其中一個(gè)鍵,燈的亮度逐漸增強(qiáng),增到最亮?xí)r,再回到最暗;按住另外一個(gè)鍵,燈的亮度逐漸減弱,減到最暗時(shí),再回到最亮。
1、PWM信號(hào)
PWM,英文名Pulse Width Modulation,是脈沖寬度調(diào)制縮寫,也就是一種周期一定而高低電平可調(diào)的方波信號(hào),在一個(gè)信號(hào)周期中,高電平持續(xù)時(shí)間的為T1,低電平持續(xù)時(shí)間的為T2 。
占空比:在一個(gè)信號(hào)周期中,高電平持續(xù)時(shí)間與信號(hào)周期的比值,即T1/Time。比如,Time=40,T1=20,則占空比=20/40=50%,即方波信號(hào)的占空比就是50%.
當(dāng)輸出脈沖的頻率(周期的倒數(shù))一定時(shí),輸出脈沖的占空比越大,其高電平持續(xù)的時(shí)間越長(zhǎng),只要改變T1和T2的值,即改變波形的占空比,達(dá)到PWM脈寬調(diào)制的目的。
**2、如何實(shí)現(xiàn)PWM信號(hào)輸出
**
實(shí)現(xiàn)PWM信號(hào)輸出有兩種方式可實(shí)現(xiàn):一是可以直接通過(guò)芯片內(nèi)部模塊輸出PWM信號(hào),前提是這個(gè)I/O口要有集成模塊,只需要配置好頻率和占空比,簡(jiǎn)單幾步就好了。這種自帶有PWM輸出的功能模塊在程序設(shè)計(jì)更簡(jiǎn)便,同時(shí)數(shù)據(jù)更精確。如下圖所示,引腳標(biāo)明PWM的表示硬件支持;
二是通過(guò)軟件模擬實(shí)現(xiàn)PWM輸出。如果對(duì)PWM頻率要求不是很高的話,可以利用I/O口設(shè)置一些參數(shù)來(lái)輸出PWM信號(hào)。因?yàn)?span id="c0ysmce" class="hljs-variable">PWM信號(hào)其實(shí)就是一高一低的一系列電平組合在一起。具體方法是通過(guò)定時(shí)器控制I/O的高低電平,對(duì)于你要求輸出的PWM信號(hào)頻率與你的定時(shí)器一致,用定時(shí)器中斷來(lái)計(jì)數(shù),通過(guò)調(diào)整計(jì)數(shù)值來(lái)改變占空比,當(dāng)然如果要求不高也可以通過(guò)軟件延時(shí)來(lái)實(shí)現(xiàn)。
3、PWM信號(hào)應(yīng)用--調(diào)光燈案例
交流調(diào)光電路,高電平占多一點(diǎn),也就是占空比大一點(diǎn)亮度就亮一點(diǎn),占空比小一點(diǎn)亮度就減弱,前提是PWM的頻率要大于我們?nèi)搜圩R(shí)別頻率,要不然會(huì)出現(xiàn)閃爍現(xiàn)象。下面用單片機(jī)控制LED亮度,模擬調(diào)光燈效果。調(diào)光燈電路原理圖如下所示,通過(guò)S2和S3調(diào)整LED的亮度。
軟件流程圖:?jiǎn)纹瑱C(jī)上電,首先初始高電平、低電平延時(shí)初始值T1=0,T2=500。然后點(diǎn)亮LED,通過(guò)軟件實(shí)現(xiàn)延時(shí)時(shí)間T1;然后熄滅LED,延時(shí)時(shí)間T2。由于此時(shí)T1=0,占空比最小,此時(shí)燈在最暗狀態(tài)。
全部實(shí)現(xiàn)代碼如下:
#include
//定義三個(gè)位變量,分別對(duì)應(yīng)按鍵S2、S3
sbit key_plus=P3^2;//LED——count+1
sbit key_minus=P3^3;//LED——count-1
sbit LED=P1^3;
//延時(shí)函數(shù)
void delay(unsigned int i)
{
unsigned int k;
for(k=0;k
}
void main()
{
//定義一個(gè)記錄LED亮燈個(gè)數(shù)變量
int T1,T2;
T1=0;//低電平持續(xù)時(shí)間
T2=500;//高電平持續(xù)時(shí)間
//循環(huán)處理按鍵,控制LED亮度
while(1)
{
LED=0;//點(diǎn)亮LED
delay(T1);//亮燈延時(shí)時(shí)間
LED=1;//熄滅LED
delay(T2);//熄滅延時(shí)時(shí)間
//判斷按鍵S2的狀態(tài),占空比增加
if(0==key_plus)
{
delay(100);//10ms消抖
if(0==key_plus)//再次檢測(cè)按鍵是否按下
{
T1++;
T2--;
if(0==T2)//如果LED燈已經(jīng)最亮,使其變?yōu)樽畎?/span>
{
T1=0;//低電平持續(xù)時(shí)間
T2=500;//高電平持續(xù)時(shí)間
}
}
}
//判斷按鍵S3的狀態(tài),占空比減小
if(0==key_minus)
{
delay(100);//10ms消抖
if(0==key_minus)//再次檢測(cè)按鍵是否按下
{
T1--;
T2++;
if(0==T1)//如果LED燈已經(jīng)最亮,使其變?yōu)樽畎?/span>
{
T1=500;//低電平持續(xù)時(shí)間
T2=0;//高電平持續(xù)時(shí)間
}
}
}
}
}
收錄于合集 **#**單片機(jī)
47個(gè)
上一篇PWM工作原理----調(diào)光燈案例下一篇實(shí)用:牛人總結(jié)的單片機(jī)三種應(yīng)用程序架構(gòu)!
-
PWM
+關(guān)注
關(guān)注
114文章
5199瀏覽量
214929 -
發(fā)光二極管
+關(guān)注
關(guān)注
13文章
1205瀏覽量
66520 -
電平
+關(guān)注
關(guān)注
5文章
361瀏覽量
40019 -
脈寬調(diào)制
+關(guān)注
關(guān)注
3文章
219瀏覽量
38425
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
led調(diào)光ic PWM調(diào)光 RGB調(diào)光芯片F(xiàn)P7122 無(wú)頻閃調(diào)光芯片
LED帕燈驅(qū)動(dòng)IC共陽(yáng)高輝PWM調(diào)光調(diào)色方案H5119L
使用NE555的pwm調(diào)光燈電路圖
自動(dòng)調(diào)光臺(tái)燈電路工作原理
![自動(dòng)<b class='flag-5'>調(diào)光</b>臺(tái)燈電路<b class='flag-5'>工作原理</b>](https://file1.elecfans.com//web2/M00/A4/83/wKgZomUMNIeADOYWAACIm-Tfp6U274.jpg)
照相機(jī)閃光燈的工作原理
光照控制自動(dòng)調(diào)光臺(tái)燈工作原理及制作
![光照控制自動(dòng)<b class='flag-5'>調(diào)光</b>臺(tái)燈<b class='flag-5'>工作原理</b>及制作](https://file1.elecfans.com//web2/M00/A5/6A/wKgZomUMOFWAP_ZxAAASeEWYr_M756.gif)
PWM調(diào)光原理與技術(shù)及手機(jī)藍(lán)牙控制LED燈的設(shè)計(jì)
基于51單片機(jī)白熾燈PWM調(diào)光過(guò)零檢測(cè)不閃設(shè)計(jì)
![基于51單片機(jī)白熾<b class='flag-5'>燈</b><b class='flag-5'>PWM</b><b class='flag-5'>調(diào)光</b>過(guò)零檢測(cè)不閃設(shè)計(jì)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
模擬調(diào)光燈怎么做 模擬調(diào)光燈電路工作原理
LED攝影補(bǔ)光燈無(wú)極調(diào)光調(diào)色芯片 PWM調(diào)光深度1%無(wú)頻閃無(wú)抖動(dòng)方案
![LED攝影補(bǔ)光<b class='flag-5'>燈</b>無(wú)極<b class='flag-5'>調(diào)光</b>調(diào)色芯片 <b class='flag-5'>PWM</b><b class='flag-5'>調(diào)光</b>深度1%無(wú)頻閃無(wú)抖動(dòng)方案](https://file.elecfans.com/web2/M00/18/43/poYBAGFs3z-ALKeOAAME--SvubA201.png)
#攝影補(bǔ)光燈調(diào)光芯片#PWM內(nèi)部轉(zhuǎn)模擬調(diào)光,無(wú)頻閃不抖動(dòng),無(wú)需MCU
![#攝影補(bǔ)光<b class='flag-5'>燈</b><b class='flag-5'>調(diào)光</b>芯片#<b class='flag-5'>PWM</b>內(nèi)部轉(zhuǎn)模擬<b class='flag-5'>調(diào)光</b>,無(wú)頻閃不抖動(dòng),無(wú)需MCU](https://file.elecfans.com/web2/M00/18/48/pYYBAGFs1a-AEgr1AABJ71FOaHI962.jpg)
PWM燈調(diào)光器電路圖分享
![<b class='flag-5'>PWM</b><b class='flag-5'>燈</b><b class='flag-5'>調(diào)光</b>器電路圖分享](https://file1.elecfans.com/web2/M00/C0/96/wKgaomW97GGASDbTAABWxnBKLtw458.png)
評(píng)論