随着时代发展,节能环保、健康与人们的日常生活变得密不可分,科技的进步,也使家电更加智能化和人性化。台灯作为家电中基础的,也是必不可少的,所以,提出PWM调光灯设计。
功能描述
1、采用51单片机作为主控芯片;
2、采用红外热释电传感器监测人体;
3、采用光敏电阻+ADC0832检测光照强度;
4、手动模式:可通过按键调节LED灯亮度,共8档;
5、自动模式:当检测到有人在的条件下,根据光照强度自动调节LED灯亮度;当检测到无人在,将进入延时程序,延时时间结束将关闭LED灯。
按键说明
KEY1:手动/自动模式切换;
KEY2:手动模式下LED灯亮度升高;
KEY3:手动模式下LED灯亮度降低。
整体方案
电路设计
采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。
仿真设计
采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
主程序设计
void Main()
{
uchar flag_200ms;
P0 = P1 = P2 = P3 = 0xff; //初始化单片机IO口为高电平 write_string(2,0," : : ");
time_init(); //初始化定时器
red = 0;
f_pwm_l = 99;
while(1)
{
key();
if(key_can < 10)
key_with();
if(flag_moshi == 0) //自动模式
red = 1;
else
red = 0; //手动模式
if(flag_moshi == 0) //自动模式
{
if(guangxian <= 20) //开灯
{
TR0 = 0; //最亮
td_led = 0;
}else if(guangxian >= 80) //关灯
{
TR0 = 0; //灭
td_led = 1;
}else
{
TR0 = 1;
f_pwm_l = guangxian;
}
}
flag_200ms ++;
if(flag_200ms >= 200)
{
flag_200ms = 0;
guangxian = ad0832read(1,0); //采集光线
guangxian = guangxian * 99 / 255;
}
delay_1ms(1);
}
}