全国服务热线:18929363263

24路调光控制器设计

来源: 发布时间:2022-03-18 72 次浏览

基于单片机的24路调光控制器设计

目前,很多公共场所的走廊灯采用声光控延时开关控制,虽然有一定的节能作用,但由于采用的是声控,容易造成多盏灯同时被点亮的现象,节能效果不理想。此外,这种控制方案必然会给安静的环境制造出不必要的噪音。而采用人体红外感应的走廊灯控系统,智能化控制程度较高,容易实现灯光的启动与人体运动的同步,当有人经过时,对应区域的灯光逐渐亮起,人离开后,灯光逐渐熄灭。

一、调光控制器系统概述

某五星级酒店的走廊示意图如图1所示。

图 1 酒店走廊示意图

图1中,黑色的实心圆点代表红外传感器,共有12个,编号是S1~S12;T0~T12是13路筒灯,其中T0是常亮的,不受系统的控制;B0~B12是13路壁灯,每路由走廊两边并联的两组灯组成,B0不受控,保持常亮。所以系统需要检测的传感器有12个,需要控制的照明回路是24路。

酒店方给出的控制要求是,早上8点至晚上10点,全部的灯亮;晚上10点至次日早上8点,按照设置的模式工作,共有四种模式:

模式1:全部的灯都受控;模式2:筒灯常亮,壁灯受控;模式3:壁灯常亮,筒灯受控;模式4:全部的都不受控,常亮。在灯受控的情况下,假设所有灯都处于熄灭的状态,当某个红外传感器感应到有人体移动,且再无别的传感器有信号被检测到时,则与红外传感器编号相同的筒灯和壁灯(以下称当前灯)开始渐亮,大约3s后到达更大 亮度,之后保持更大 亮度5s,再开始渐灭,大约3s后到达最小亮度,即熄灭状态;其左边和右边的灯(以下称左右灯)延时2s后开始渐亮,之后的控制方法与当前灯相同。

如果某个红外传感器感应到有人体移动时,对应的当前灯及其左右灯并非都是处于熄灭的状态,即在此之前已经有相邻的传感器检测到有人体移动,则对当前灯及左右灯的控制方法如表1所示。

表 1 当前灯及左右灯的控制方法

在本系统中,工作模式1相对是最复杂的,以下的叙述均以工作模式1为例。

对于第1号传感器(图1中的S1),需要处理其对应的当前灯(筒灯T1和壁灯B1)及其右边的灯(筒灯T2和壁灯B2);对于第12号传感器(S12),需要处理其对应的当前灯(筒灯T12和壁灯B12)及其左边的灯(筒灯T11和壁灯B11);对于其它10个传感器(S2~S11),需要处理其对应的当前灯及其左右灯。而具体的处理方法,与受控灯当前的状态(有熄灭、渐亮、常亮、渐灭四种情况)有关(如表1所示)。本系统的框图如图2所示。

图 2 系统框图

图2中的红外传感器由12个人体热释电红外传感器构成,能探测人体发出的红外辐射,在有效探测范围内可实现对运动人体的检测。过零检测是对220V交流电过零点信号的提取电路,该信号作为系统中可控硅调光电路的同步信号。单片机检测到同步信号,延时后产生触发信号,通过锁存电路给驱动电路中的可控硅,使后者导通。改变延时时间的长短也就改变了可控硅的导通区间的大小,达到调光的目的。时钟模块使用PCF8583,用于给系统提供北京时间,键盘和显示器用于时间的修改和系统工作模式的设置。这部分的电路和程序设计比较常见,不在本文的讨论范围之内。

二、调光控制器程序设计

程序采用分时巡检的处理方式,每10ms完成一部分灯回路状态寄存器的刷新或检测传感器输入信号的任务,在0.1s的时间内将全部的任务处理一遍,既保证了在每个中断周期内有足够的时间处理任务,又保证了处理的实时性。在这种处理方式下,系统的更大 时延不超过0.1s,即传感器信号可能会晚0.1s被系统检测到、灯可能会晚0.1s被点亮,而人对这点时延是不敏感的。程序设计中最关键的就是多路PWM波形的产生。仍然以工作模式1为例,在这种模式下,系统最多需要同时产生24路的PWM波形。给每个灯回路分配一个8位的状态寄存器(以下简称寄存器)和一个8位的延时寄存器,其数值范围如表2所示。

其中,寄存器的高两位(bit7~6)00、01、10、11分别代表灯回路的熄灭、渐亮、常亮、渐灭四种状态;低5位(bit4~0)在渐亮、渐灭状态下表示该过程持续的时间,在熄灭、常亮状态下不用,数值固定为0;bit5未用。

例如,当某传感器探测到有人体移动时,给对应当前灯的寄存器(包括筒灯和壁灯的两个寄存器)赋初值0x5F,灯回路进入“渐亮”状态,每0.1s对该回路处理一次,每次寄存器的值减1,当用于表示状态持续时间的低5位为0时(时间大约3秒),给寄存器赋初值0x81、延时寄存器赋初值50,该回路进入“常亮”状态;在“常亮”状态下,每0.1s对延时寄存器的值减1,5s后其值减为0,再给寄存器赋初值0xC1,回路进入“渐灭”状态;在“渐灭”状态下,每0.1s对寄存器的值加1,大约3s后寄存器的低5位为全0,清零寄存器,回路进入“熄灭”状态。

而对左右灯的处理要多一个过程,即当某传感器检测到有人时,对应的左右灯回路要延时2s后才开始渐亮,此时给左右两个回路的寄存器(包括筒灯和壁灯,共四个寄存器)都赋初值0、延时寄存器赋初值20,每0.1s对延时寄存器的值减1,2s后其值减为0,再给寄存器赋初值0x5F,左右灯回路进入“渐亮”状态,其后的过程与对当前灯的处理完全一样,不赘述。

2.1红外传感器处理流程图

当传感器探测到有人体移动时,只需要按照表1的控制方法,对相关的当前灯及左右灯的状态进行修改,即修改对应的寄存器。如图3所示的是对左右灯的状态处理的流程图。

图 3 红外传感器处理流程图(左右灯)

而对当前灯状态处理的流程与图3相比,只有一点不同,即当传感器探测到有人体移动且当前灯为“熄灭”状态时,直接将其寄存器的值修改为“渐亮”状态的初值0x5F。

2.2灯回路处理程序流程图

灯回路处理程序要完成对灯回路在各种状态下的持续时间的控制,并在某个状态结束后,设置灯回路进入下一个状态。程序流程图如图4所示。

图 4 灯回路处理流程图(左右灯)

图4中,当灯回路处于熄灭状态时,如果延时寄存器的值为0,则表示该灯目前是常灭,不需要做任何处理;如果延时寄存器的值不为0,则表示该灯的状态是等待渐亮,当其值减到0时,进入渐亮状态,给寄存器赋渐亮的初值0x5F。对当前灯回路处理的流程与图4相比,亦只有一点不同,即当传感器探测到有人体移动且当前灯为“熄灭”状态时,将其寄存器的值修改为0x5F,直接进入“渐亮”状态。

2.3灯回路控制信号输出程序流程图

24个灯回路的控制信号通过3片8位的锁存器送至可控硅驱动电路。控制信号的输出在定时器中断中完成,中断周期略小于10ms/32,即在10ms内输出32次。如图5所示是控制信号输出中断程序流程图。

图 5 控制信号输出中断程序流程图

图5中的“中断计数”在由同步信号的下降沿产生的外部中断程序中清0。程序中,为每个控制信号分配1位(bit)的存储空间,24路控制信号共占用3个字节,图中的“24路控制信号修改”即是根据灯的状态,对这3字节、24位的数据进行修改,之后通过3片锁存器将这3个字节的数据输出。如图6所示是一路控制信号修改的流程图。图中的寄存器是灯回路的状态寄存器,在渐亮、和渐灭状态时,其低5位代表的是状态持续的时间。


当灯回路处于熄灭状态时,由于寄存器的值固定是0(如表2所示),而中断计数的数值范围是1~32,两者不相等,所以控制信号对应的位为1,可控硅不导通,灯常灭。常亮状态时寄存器的值固定是0x81,低5位等于1,在中断计数到1时(即同步信号下降沿后的 次中断),控制信号输出0,灯亮的时间最长、亮度更大 。

在刚进入渐亮状态时,寄存器的值是0x5F,低5位等于31,在中断计数到31时,控制信号输出0,可控硅导通,亮度更低 ;每过0.1s,寄存器的值减1,可控硅导通时间提前约10ms/32,亮度逐渐增加。而在渐灭状态之初,寄存器的值是0xC1,低5位等于1,所以在 个中断周期控制信号输出0,可控硅导通,亮度更大 ;每过0.1s,寄存器的值加1,可控硅导通时间推迟约10ms/32,亮度逐渐降低。

总结

本文所设计的走廊灯控系统,已在多个星级酒店使用,运行情况良好。该系统虽然是为酒店而设计的,但实际上可应用在学校、医院、写字楼等其它的公共场合的照明控制,特别是本设计中24路独立的PWM波形的产生方法,有实际的应用价值。