本文系统讲述如何利用PIC16F877微控制器实现触摸式调光台灯的智能化控制,实现(1)触摸调光;(2)灯丝预热;(3)自动消除眩光、频闪;(4)定时闹钟;(5)特色铃音;(6)整点报时;(7)事件提醒;(8)日历功能;(9)中文液晶显示等功能,满足安全、高效、无眩光、无频闪、功能齐全等质量标准。
硬件设计1.PIC16F877征控制器
PIC16F877微控制器为MicroChip公司FLASH型CPU,片内含8K的FLASH程序存储区,368字节RAM,256字节的EEPROM,35个独立I/0口,一个16位计数器/定时器,两个8位计数器/定时器,14个可独立使用也可嵌套使用的中断源,2个捕捉器、比较器、PWM模块,,白带8路10位A/D,内带看门狗WDT及电源监视,具有休眠、等待等多种节电方式,I/0口可以直接驱动LCD。
2.硬件电路设计
触摸式调光台灯硬件框图如上图所示,硬件原理图如下图所示。
上图中C1和T1组成EMI滤波器,一方面可以减少镇流器对电网的干扰,另一方面可以防止其它电器设备对镇流器的干扰;V1-V4组成桥式整流器;C3、C4、V5、V6和R21组成无源功率因数校正电路,使功率因数达到0.9以上,为保证功率灯管使用寿命,电路的功率峰值因数应小于1.7,本文采用PIC16F877单片机的捕捉功能对频率进行反馈回读,根据频率的变化采取相应的措施,改变IR2151的输入,从而控制IR2151的输出频率,达到控制输出功率的目的。该方法可以使光源更稳定,消除眩光、频闪,达到护眼灯的效果。
触摸式调光灯工作时通过触摸金属片A(亮键)、B(暗键),将人体杂波信号通过耦合电容加到MCU的I/0口进行检测,同时,耦合电容还可以防止因个别器件损坏而造成麻电现象;MCU根据检测到的信号通过程序分析、运算,将PWM信号从17脚输出到IR2151,控制振荡频率;振荡器经高端(HO)和低端(LO)引脚输出,驱动两个场效应管IRF830交替导逼和截止,达到控制灯管的目的。
灯丝的预热由热敏电阻控制,上电后,IR2151的6脚、电感L1、电容C1O、Cl3组成串联谐振电路,在Cl3上产生高压加到灯管两端,将灯点亮。其中,RT为正温度系数的热敏电阻,起到对灯丝预热的作用;电源接通后灯丝电流几乎全部加载到C1O和RT上,由于C1O电容较大,LC串联电路不发生谐振,随着温度升高,RT阻值迅速增大,RT支路相当于开路)使LC串联电路发生谐振,即达到对灯丝进行预热及软启动的作用,延长了灯管的使用寿命,整个过程MCU时刻进行监控及调整,实现真正的智能化控制。
软件设计软件设计由MCU初始化、装置自检、定时采样、中断处理、液晶显示、按键处理六部分,软件流程如下图所示。
定时器中断子程序为软件设计的核心,包含湿度、湿度采样、调光,除眩等控制,本文对温度、湿度的精度要求不是非常的严格,采样周期设为1min,通过采样5个点求平均值,且精度满足采样要求。
定时器初始化子程序如下;
/***********定时器初始化*******/
void tmint(void)
{
INTCON=0X00;
/********关闭中断**********/
GIE=1;
/***********总中断使能INTCON.7**********/
PEIE=1;
/*********外围接口中断使能位,必须置1否则TMR1中
断不好用***********/
TMR1IE=1;
/**********TMR1溢出中断使能位**********/
T1 CON=0X24;
/******************预分频器1:4暂时不打开TMR1***********/
TMR1 L=0X77;
TMR1 H=0XEC;
/**************定时器赋初值20mS中断1次***************/
TMR1ON=1;
/***********启动TMR1开始计数。T1CON.0**************/
}
定时器中断子程序如下:
/************定时器中断***********/
void interrupt clkint(void)
{
int i,j,k:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)