基于單片機(jī)的彩燈設(shè)計方案
1.引言
本文引用地址:http://2s4d.com/article/257804.htm隨著人們對房屋的裝飾需要彩燈,在許多城市可以看到彩色霓虹燈。LED彩燈由于其豐富的燈光色彩,便宜的造價以及控制簡單等特點而得到了廣泛的應(yīng)用,用彩燈來裝飾街道和城市建筑物已經(jīng)成為一種時尚。但目前市場上各式樣的LED彩燈控制器大多數(shù)用全硬件電路實現(xiàn),電路結(jié)構(gòu)復(fù)雜、電路復(fù)雜、功率損耗大等缺點。此外從功能效果上看,亮燈模式少而且樣式單調(diào),缺乏用戶可操作性。
全球氣候暖化危機(jī)和能源緊缺在進(jìn)一步推動LED照明的普及,LED照明具有環(huán)保、光效高和壽命長的特點,但在完全取代具有墻上型調(diào)光器的白熾燈方面,LED照明還存在兼容性差的先天不足。其主要原因在于:
1)現(xiàn)有的調(diào)光器都是針對白熾燈設(shè)計的,而白熾燈呈現(xiàn)的是純阻性;LED作為固態(tài)半導(dǎo)體照明器件,需要恒定的直流電流驅(qū)動,所以LED照明一般都需要驅(qū)動器從交流110V/220V轉(zhuǎn)換到所需要的直流電流;
2)調(diào)光器種類繁多,而且工作原理各不相同,包括前切型、后切型和智能型等;
3)LED照明器的種類也很多。這樣一來,對于不同的LED照明匹配不同類型的調(diào)光器;LED的驅(qū)動器面臨巨大挑戰(zhàn);其中,可靠性和安全性尤為重要。照明屬于消費電子產(chǎn)品,直接接觸千家萬戶的消費者,不僅價格要適當(dāng),更重要的是要安全可靠;即便是任一元器件失效或調(diào)光器與LED不匹配,也不能造成漏電、過熱、過流等任何安全故障。
2.硬件設(shè)計
單片機(jī)控制三組小燈可以按控制單色依次點亮,還可以通過改變輸出脈沖不同的占空比來控制輸出電壓,以控制該色LED的點亮,實現(xiàn)多色光LED漸變發(fā)光功能,使三種顏色的燈可以發(fā)出多種顏色,單片機(jī)控制P1口的某管腳按規(guī)定輸出高低電平,輸出高電平時由ULN2003輸出低電平,經(jīng)ULN2003反向為高電平,使驅(qū)動三極管截止,LED不能點亮,每種顏色的三個小燈由單片機(jī)芯片P1口的一個管腳控制,實現(xiàn)它們的順序點亮及顏色漸變和顏色突變功能。
圖1 LED調(diào)光原理框圖
圖2 LED發(fā)光元件電路圖
3.軟件設(shè)計
圖3 單片機(jī)控制LED調(diào)光電路流程圖
4.程序設(shè)計
#includereg52.h>
sbit LED1=P1^0;
sbit LED=P1^1;
sbit LED2=P1^2;
unsigned char CYCLE;
unsigned char PWM_ON;
void delay (unsigned int cnt)
{
while(--cnt);
}
main()
{ bit flag;
TMOD=0x01;
TH0=(65536-100)/256;
TL0=(65536-100)%256;
IE=0x82;
TR0=1;
CYCLE=50;
while(!flag)
{ delay(20000);
PWM_ON++;
if(PWM_ON==CYCLE)
{ flag=1;
}
}
while(flag)
{ delay(20000);
PWM_ON--;
if(PWM_ON==0)
{ flag=0;
}
}
}
void time(void) interrupt 1
{ STatic unsigned char count;
TH0=(65536-100)/256;
TL0=(65536-100)%256;
if(count==PWM_ON)
{ LED1=1;
LED=1;
LED2=1;
}
count++;
if(count==CYCLE)
{ count=0;
if(PWM_ON!=0)
LED1=0;
LED=0;
LED2=0;
}}
評論