您的位置 首页 开关

详谈触摸式调光台灯的智能化操控技能

详谈触摸式调光台灯的智能化控制技术-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。

本文体系叙述怎么运用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:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/348391.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部