APP下载

基于单片机的智能灯的设计与实现

2020-11-13王永涛王启明

关键词:方波光敏电阻数码管

王永涛, 王启明

(平顶山学院 ,河南 平顶山 467000)

一、引言

随着科学的不断发展进步,人们的生活越来越便利,尤其是智能化产品的出现,更提高了人们的生活品质[1]。生活中常见的智能产品有智能洗衣机、智能电饭锅、智能电磁等,它们都是运用单片机来控制各种功能以达到智能化。然而,大部分家庭里现在安装的都是台灯、荧光灯、白炽灯这些普通灯具,有很多缺点:第一,使用手动开关来开关灯,会让人们在使用电器时存在触电的安全隐患[2];第二,灯具频繁使用,其频闪效应,会给人们的眼睛带来极大的伤害;第三,功率消耗大,比较费电;第四,由于是手工操作关灯,有时如果忘记关闭正在工作的灯具,也是一种能源浪费。为了解决以上问题,智能灯便应用而生。采用STC89C51单片机为主控元件设计的智能灯,具有电路结构简单,易开发、生产成本低等特点,能够较好地满足人们在生活中的需求。

二、 系统硬件设计

(一)系统的基本结构

系统结构图如图1所示。整个系统是在 80C51控制下工作的。其工作过程为:当环境光比较强时,光敏电阻阻值比较小,信号处理电路检测到低电平信号,禁止热释电红外传感器工作,省去了 80C51 处理过程。当环境光比较弱时,光敏电阻阻值变大,信号处理电路接收到高电平,从而启动热释电红外传感器工作[3]。热释电红外传感器能探测比较远的距离,当人体进入到传感器的控测范围内且光强较弱时,信号检测电路处理信号,并向单片机发送一个中断,80C51 启动灯光控制电路,点亮智能灯[4]。同时也可以进行模式调节,手动模式下,手动调节灯的亮度,

图1 系统结构图

图2 总体电路电路图

(二)总体电路设计

本智能灯的硬件部分包括灯光模块、热释电、电源模块、光敏电阻、显示模块、ADC模块和核心MCU七个部分,这七个部分相互配合、共同作用,实现了智能灯的功能。总体电路设计如图2所示。

(三)光敏电阻

光敏电阻(photoresistor or light-dependent resistor,后者缩写为ldr)或光导管(photoconductor),光敏电阻是用硫化镉或硒化镉等半导体材料制成的特殊电阻器,对光线十分敏感,具有在特定波长的光照射下,其阻值迅速减小的特性。光敏电阻在无光照时,呈高阻状态,暗电阻一般可达1.5MΩ;光照愈强,阻值就愈低,亮电阻可小至1KΩ以下。本设计就是利用光敏电阻的阻值随着亮度的改变而改变,从而改变光敏电阻上的电压值[5]。这时,通过AD转换器采集电压,传输给单片机,从而达到智能控制灯的亮灭。

(四) AT89C51控制芯片

AT89C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。采用40引脚双列直插式DIP(Dual In Line Package),内有128Byte的RAM单元及4K的ROM。

AT89C51有两个16位定时计数器,两个外中断,两个定时计数中断,一个串行中断,并有4个8位并行输入口。AT89C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。由于AT89C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心。

(五)红外热释电模块

红外热释电传感器由传感探测元、干涉滤光片和场效应管匹配器三部分组成,探测元件将探测并接收到的红外辐射转变成微弱的电压信号,经装在探头内的场效应管放大后向外输出。为了提高探测器的探测灵敏度以增大探测距离,一般在探测器的前方装设一个菲涅尔透镜,利用透镜的特殊光学原理,在探测器前方产生一个交替变化的“盲区”和“高灵敏区”,以提高它的探测接收灵敏度。当有人从透镜前走过时,人体发出的红外线就不断地交替从“盲区”进入“高灵敏区”,这样就使接收到的红外信号以忽强忽弱的脉冲形式输入,从而强化其能量幅度.同时人体辐射的红外线中心波长为9~10um,而探测元件的波长灵敏度在0.2~20um范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为7~10um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器,所以说有人的时候,才会亮,动物也不会亮,这样大大的节省啦资源。当人体进入其感应范围时,传感器就会产生几 mV信号,然后通过以 BISS0001为中心的人体红外模块, 对信号进行二次放大, 并滤波以防止外界的信号产生干扰。信号经过 BISS0001 后从而转化为数字信号输出,便于用单片机进处理。

(六)模数转换电路

ADC0808 是含 8 位 A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、软件设计

(一)数码管显示

采用四位一体数码管显示数字。进行位选和段选(位选是指选择要使用的数码管,段选是指让某个数码管显示数字)。首先要将每个位选置0,再将要使用的数码管位选置1;然后进行段选(要注意所用数码管为共阴极还是共阳极);最后通过除和取余运算将所要显示的数字显示到数码管上。

(二) 红外热释电

本系统的红外热释电使用开关进行模拟,系统运行时,通过开关的断开与闭合,反应是否有人,进而控制灯的亮灭(低电平代表有人)。

(三)ADC程序

系统运行时,首先是对ADC进行初始化,主要功能是选择转换通道、配置通道、锁存转换通道、打开输出使能;然后进行ADC转换(START开始转换引脚,触发条件拉高最少100ns,拉低);最后通过数码管显示信息。

(四) 定时器和中断

本系统定时和中断主要用于定时、延时和方波占空比的控制。系统运行时,首先对定时器进行初始化,主要包括寄存器TMOD的设置、设置定时初始值、中断总允许、打开定时器中断、打开定时器开始计数;然后进入中断服务函数,进行相应的时间设置。

(五) PWM方波

本系统主要使用PWM方波控制灯的亮度。在系统运行时,首先判断是否有人,如果有人,则让灯亮,否则,灯灭;然后通过中断来设置PWM方波的占空比,达到控制灯亮度的目的。

(六)主函数

主程序运行时,首先进行初始化,包含定时器0和1的初始化、ADC的初始化;接着,确定ADC的转换时间(每500ms转换一次,用定时器和中断实现);然后,根据光照强度的强弱设置PWM方波的占空比(当光线最暗时,灯最亮,占空比为100%);最后,将数据显示到数码管上,程序结束。

四、结语

设计了一种以单片机AT89C81为控制核心的智能灯系统,结构简单,应用广泛,更加适用于未来的智能化社会,更能跟上时代的发展,为进入物联网领域打开了大门。

猜你喜欢

方波光敏电阻数码管
便携式多功能频率计的设计与实现
物理项目教学设计,用单片机控制四位数码管显示
基于51单片机的分数计数器设计
浅谈不同化学成分对光敏电阻薄膜特性的影响
——以高PbI2掺杂水平的钙钛矿光阻膜、Bi2S3光阻膜、ZnO光阻膜为例
Arduino编程
MC9S08FL16单片机数码管静态显示分析
心肺复苏通气时呼吸机送气流速模式选用方波和减速波对患者气道压力的影响
光敏电阻的特性研究
橡塑保温管切割台的输送带控制电气线路改造
一种防垢除垢的变频电磁场发生装置