单片机路灯节能控制系统设计指南
摘 要
建设和谐社会、倡导节约能源、保护环境,已成为当前社会的头等大事。随着社会的发展,城市的市政事业也
在不断地发展,路灯照明系统对人们的生活显得格外重要。然而社会发展的同时,能源危机与全球变暖也日趋严
重。因此,节能和环境保护成为了目前照明领域的一个重要课题。根据目前所存在的情况,为了解决当前城市照明
路灯存在的问题,本文研究的目的是设计一个基于单片机的路灯节能控制系统,既能满足夜间道路照明要求,又能
节约能源。
本论文以STC89C52RC为核心,从软件和硬件两方面进行了研究,增加了蓝牙模块,通过红外检测、周围环境亮
度检测、时间控制以及故障报警相结合的关键技术,形成了一整套路灯节能控制系统。系统主要针对在天气条件及
周围环境突然改变、后半夜道路上行人和车辆少时路灯的运行状态,以及路灯出现故障时的巡查方式复杂等方面进
行了研究。利用光敏传感器检测周围环境亮度,红外检测后半夜有无行人、车辆通过,声光报警检测路灯的运行状
态,蓝牙模块检测路灯的运行状态以及调节各项参数,结合单片机进行控制从而实现路灯的平稳运行。通过仿真调
试,本系统所要求的功能均能实现。
本系统安全可靠、成本低、可实现人机交互、自动调节、声光报警、能合理而有效的改善目前路灯电能资源浪
费这一现象等优点。
关键词:单片机;节能;路灯控制
1 绪论
1.1课题背景
建设和谐社会、倡导节约能源、保护环境,已成为当前社会的头等大事。随着社会的发展,城市的市政事业也
在不断地发展,路灯照明系统对人们的生活显得格外重要。然而社会发展的同时,能源危机与全球变暖也日趋严
重。因此,节能和环境保护是目前照明领域的一个重要课题。
节约能源并不仅仅意味着机械的减少照明路灯的数量,更重要的在于合理的分配路灯的照明时间,根据道路及
周围环境的实际需求,做到“按需点灯”,降低不必要的电力损耗将是节约能源的非常有效的方法。
据调查,中国的一些小城市,到了晚上九点之后,大城市的马路上已经很少有车辆和行人了,甚至像北京,上
海,广州这些繁华的城市,在凌晨2点之后,路上的行人和车辆都很稀少。不需要在车流较少的路上亮起路灯,直到
早上六点。根据统计,所有城市公共照明加起来能耗约为439亿千瓦时,占到全国照明用电总量的30%,按每千瓦
0.65元的平均电价计算,每年花费285亿元。因此,这就造成了照明费用占在政府财政支出的很大一部分。
目前国内大部分的城市都是“全夜灯恒照度”,其控制方法比较单一,通常是光控和时控,缺点是只能集中控
制[1]。现有路灯控制方式主要存在两个主要问题:一是系统不能自动检测路灯的工作状态,只能依靠工作人员的巡
查来解决。由于路灯规模的不断扩大,这无疑是对人力、物力的一种浪费,并且还有很大的滞后性。其次,该系统
不能自动检测路上是否有行人及车辆的过往情况。由于在半夜路上可能很少有行人和车辆,如果一直采用“全夜
灯”这一照明方式,将对电力资源产生很大的影响。照明系统的重点应主要放在下半夜道路上流量较低的时间段,
利用智能控制有效合理地控制路灯的照明方式,把这一时间段的电能省下来,将会节省一笔不小的开支[2]。
1.2目的意义
根据目前所存在的情况,为了解决当前城市照明路灯存在的问题,本文研究的目的是设计一个基于单片机的路
灯节能控制系统,既能满足夜间道路照明要求,又能节约能源。主要体现为以下三个方面的意义:一是为城市照明
提供一个有效实用的控制方案,确保路灯照明的可靠性;二是节约电能,充分有效的利用电能,减少不必要资源浪
费,提高利用率,从而减少用电方面的财政支出。三是提高路灯照明系统的运维管理水平,解决依靠人力巡查的问
题,节省大量的人力、资源等。
本文基于LED路灯照明,增加了蓝牙模块,通过微处理器、红外检测、周围环境亮度检测、时间控制以及故障报
警相结合的关键技术,形成了一整套路灯节能控制系统。系统主要针对在天气条件及周围环境突然改变、后半夜道
路上行人和车辆少时路灯的运行状态,以及路灯出现故障时的巡查方式复杂等方面进行了研究。利用光敏传感器检
测周围环境亮度,红外检测后半夜有无行人、车辆通过,声光报警检测路灯的运行状态,蓝牙模块检测路灯的运行
状态以及调节各项参数,结合单片机进行控制从而实现路灯的平稳运行。
1.3 国内外的研究现状及发展趋势
1.3.1国内外研究现状
国际上的节电研究界曾经提出了“在保证照明效果的前提下通过照明节电”的新理念,这种理念科学合理,对
发达国家路灯节能系统设计非常重要[3]。
在很多国家中,国家、省政府和地方政府都在出台相关政策、予以奖励和推广活动,以促进人们广泛使用节能
产品[4]。
美国能源产品法(NAECA)中清楚地规定,不得出售低效的镇流器,并且要求在2005年以前出售的镇流器都要采
用电子。同时,节能产品的普及,也出台了许多鼓励消费者购买节能型产品的政策。
日本已经对能源法案进行了修订,它采用了一种“高级运营方法”,并建立了一系列能源效率的新标准。鼓励
厂家提高灯具效率,在规定的时间内将灯具的效率提高到规定值,如果达不到要求,政府将会公布厂家的名称。
欧洲国家也十分重视照明节能,为此做出了很多努力:第一,大力推行“紧凌”荧光灯(CFL),以取代白炽
灯。在20世纪九十年代后期,欧洲70%的室内灯具仍然是采用球状白炽灯,若用凌型荧光灯代替则可节省大约60%以
上的用电量。因此在1998年欧盟通过让家用型灯泡添加标签的方式,在标签上注明以下内容:通过分级的方式以A到
G字母分类,A级节能效率最好,G级最差且不能节能。其次,在非居住室内制定节能措施。例如对灯具和镇流器提出
节能的效率要求,没有达到标准的厂家将被强制从市场上淘汰。
澳大利亚颁布了ASfNZS1158路灯标准,包含6项标准和相应的规范。每一种规格都可以被应用于各种不同的灯
具,而每一种灯具的性能都是由其技术参数限定的。这一标准不但在很长一段时间内对定光闪烁进行了限制,同时
4 全局控制子程序 66
6
也对环境问题进行了全面的研究[1]。
与国外的先进国家相比,我国的城市照明技术发展的相对比较晚,但其发展的速度却很快。中国“绿色照明”
在照明节能领域提出了新的要求,它不仅要保证照明系统的正常使用,还要使用新的节能光源,加强对控制的研
究,实现节能目标。目前,国内路灯主要采取的照明节能措施有以下几种:
第一种为路灯智能控制系统。
目前国内比较成熟的智能路灯控制系统就是全自动经纬街灯控制器,这种 LCD显示屏是一种小型的、小巧的、
物美价廉的显示屏,可以自动计算出一个地区的日出、日落时间,再由日出和日落来控制路灯的开关,不需要人为
的调整。该控制器有三种控制模式,分别是全夜灯、半夜灯和双灯,并可在节庆时手动调整全夜灯的功能。目前主
要应用于城市路灯照明控制,大型照明工程,大型油田照明控制,企业单位照明控制。但这也有一个问题,那就是
系统只会根据太阳的升起和日落来调整路灯的开关,当天气变得昏暗的时候,路灯就会熄灭。
第二种为采用节能型光源进行节能。
近年来,我国在开发新的节能灯方面取得了良好的成果,大量地取代了传统的光源,其优势是可以在达到相同
强度的前提下,降低能耗,这种灯具的使用寿命也会更长一些,因而可以有效减少灯具的维护支出[5]。
第三种为其他节能控制方式。
目前,我国的节能设备在一定程度上已经达到了节能的目标,但仍不能完全达到节能的质量标准,其主要内容
如下:(1)采用自藕变压器和磁饱和电容进行降压;(2)使用含有电子元件的晶闸管装置;(3)一种新的调光技
术, LED是一种二极管,可以迅速切换,在光源方面, LED比其它节能灯要简单得多,所以现在市面上有一种
LED,可以调整 LED路灯的亮度,让它在夜晚变暗,既能照亮又能节约能源[1]。
1.3.2 发展趋势
绿色照明主要是依据发展绿色照明技术,促进节能减排,由此达到绿色应用的效果。在保证正常照明的前提
下,减少能源消耗和支出是未来路灯照明的发展趋势。在我国,倡导“绿水青山就是金山银山”,由此可见我国对
绿色环保的重视程度。为了创造一个绿色照明环境,通过与国外技术的融合,我们已经掌握了绿色、智能照明等关
键技术,从而进一步促进了绿色照明技术的发展,促进了照明技术的进步和发展。本技术利用优质的节能产品,达
到了节能效果,节能效果达到80%,说明了智能化照明控制系统在节能减排上的应用前景。当前,智能照明控制技术
正朝着节能、高效的方向发展。
1.4本文的主要工作
本文结合国内外的研究成果,对常见的路灯节能控制系统进行了分析比对,进而综合设计了一款基于单片机的
路灯节能控制系统。从实际角度做出了具体的元器件选型,软硬件设计并进行了仿真调试。
论文的主要内容如下:
1、系统方案设计;
2、以单片机为核心器件的硬件电路设计;
3、控制系统软件设计;
4、控制系统软件的仿真与调试。
2 系统方案设计
2.1总体方案设计
路灯节能控制系统是以STC89C52RC单片机为核心,主要包括七个模块,第一个模块是实时时钟模块,能够对时
钟芯片进行实时读出,并将其显示在显示屏上;第二个模块是红外探测模块,该模块能够探测到是否有行人和车辆
在路上行驶;第三个模块为光敏传感器模块,可以实时监测周围环境的光照强度和路灯的光照强度并通过数据采
集、转化,在显示器上进行显示;第四个模块为蜂鸣器报警模块,它可以对工作时间内出现故障得路灯进行声光报
警,便于工作人员快速定位并进行维修。第五个模块为蓝牙模块,利用蓝牙模块的数据传输功能,可以向单片机发
送指令,用于调整路灯的工作状态,单片机也会向蓝牙串口发送该控制系统的各项参数,便于检查。第六个模块是
键盘模块,可以通过键盘调节系统各项参数以及手/自动控制切换等。第七个模块是显示模块,可在显示屏中显示系
统运行的各项参数及工作状态,便于直接观察。
本系统分为手动/自动两种,手动方式可对路灯开关进行手动操作;自动模式下,当系统启动时,首先会根据时
钟芯片的信息判断是否为工作时间,若不是工作时间,则会根据光感应模块检测到的周围环境的光照强度进行判
断,光照强度如果低于设定的光照阈值,两个路灯全部点亮;否则,路灯保持熄灭状态。若在工作时间内,在晚上
的前半夜,路灯会自动点亮,当过了午夜12:00以后,红外感应模块开始工作,通过红外检测如果检测到道路上有行
人及车辆通过,路灯A保持点亮,路灯B自动点亮10s,10s开始计时,到时后路灯B自动熄灭。如果在工作时间内,该
工作的路灯出现故障不进行工作时,故障检测电路中的蜂鸣器会进行报警,同时故障灯也会点亮。单片机通过蓝牙
串口可以实时传输工作状态,也可通过蓝牙向单片机传送指令。
2.2系统主要模块方案论证与比较
2.2.1控制核心的选择
方案1:采用128 byte RAM,4 K ROM,T0和T1两个16位定时器的AT89C52。
方案2:选择STC89C52RC,采用256 byte RAM,8 K ROM,T0,T1,T2三个16位的定时器。
方案比较:STC89C52RC单片机与AT89C52相比拥有速度快、低功耗、抗干扰等优点,指令代码完全兼容传统8051,但
速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250k/s),因此选择方案二。
2.2.2 光敏传感器的选择
我们选择光敏电阻作为光照传感器,光敏电阻又称光导管,它的工作原理是根据内光电效应,光照越强,阻值越
低。
2.2.3 显示器的选择
方案一:使用数码管显示
我们采用单片机控制器来实现LED的I/O驱动设备。该系统不仅需要显示准确的时间,还需要显示光照阈值等信
息,因此如果采用数码管显示,将需要大量的单片机I/O口。
方案二:采用液晶显示
液晶显示屏的每个像素点在接收到信号后都能保持其明亮和恒定的亮度,而LED需要刷新和扫描。因此,液晶显示清
晰,没有闪烁。此外,液晶显示界面简单可靠,功耗低,抗干扰。
总体而言,与数码管相比,液晶显示器具有更美观、更智能、性能稳定可靠、安装方便等优点。
所以我们选择LCD1602来实现信息显示。
2.2.4 时钟芯片的选择
我们选用美国 DALLAS公司生产的DS1302,其高效能、低功耗、带有 RAM的实时时钟电路,可以精确计时年、
月、日、时、分、秒,还可以对闰年起到补偿作用,可在电压2.5~5.5V的电压环境下进行工作[6]。
2.2.5 红外感应模块的选择
红外线感应模块选用HC-SR501,这是一种以红外线为基础的自动控制模块,主要应用于人体和汽车的检测,采
用德国原装进口LHI778探测器,有效探测范围0-7米,具有高灵敏度、高可靠性、低功耗等优点,被广泛的应用在自
动感应方面。
2.3 系统工作原理
控制芯片选用STC89C52,结合蓝牙模块,通过C语言编程实现控制系统各个部分的功能。时钟源选用DS1302,通
过红外检测、光敏传感器检测移动物体和周围环境的光照强度,利用LCD1602进行显示实时时间和光照强度,外接6
个按键用于人机交互。最后,通过根据设定的时间、周围环境的光照强度、道路上有无移动物体自动控制路灯的工
作状态,以此达到满足照明需求的同时节约能源。系统方框设计总图如图2-1所示[7]。
图2-1 系统设计方框总图
3 系统硬件设计
3.1 单片机最小系统
单片机最小系统的核心是STC89C52RC,通过外接晶振电路,复位电路构成。晶振电路由C2、C3、X1构成;复位
电路由C1和按键S0构成。其主要功能是控制LCD的显示、监测路灯的运行状态、监测故障及设置用户界面。其电路如
图3-1所示:
图3-1 单片机最小系统
STC89C52RC是一款具有8 K字节、高性能、功耗低的8位微处理器。
晶振电路对单片机最小系统具有极为重要的作用,单片机执行的所有指令都需要该电路的配合,通过晶振电路
和微控制器的内部电路,该方法可以获得用于单片机的时钟频率。这个频率越低, MCU的工作就会变得越慢,而
MCU的工作就会变得更快。在共振的情况下,晶振电路可以让电能和机械能相互转换的晶体正常工作,从而实现稳定
而精确的单频振动。在该控制系统中,晶振电路主要为了取得时钟信号[8-10]。
复位电路的目的在于将单片机重新设定为初始状态,包括将程序计数器 PC=0000 H,它的作用是让单片机从
0000 H的地址单位开始进行。复位的原理是,在管脚 RST中存在两个或多个高电平。复位操作通常包括:上电自动
复位、按键电平复位和按键脉冲复位[10-12]。
3.2 键盘电路
键盘作为一个输入设备在电路中的作用主要是通过人为参与的方式,向单片机输送命令,调节系统的工作状态
或者向系统输入想要调节的参数,达到人机交互的目的。在本设计中增加了六个独立按键结合程序用来调试各种功
能。按键的工作原理是:当按键的按下时,使得内置弹簧得到压缩,可动端触点与静止端触点接触,按键两端的引
脚连接;按键抬起后,弹簧恢复,两触点断开,两端的引脚也断开。简而言之,就是通过可动端触点与静止端触点
的接触、断开来达到按键的通、断。键盘电路由S1、S2、S3、S4、S5、S6构成,
按键的功能:S1是设置按键,以此进入设置界面,用来设置时间、光照阈值、路灯亮度等各项参数。S2是左
键,进行光标的移动,在手动模式下也可以用来关闭所有灯光。S3是上键,用来切换到上一界面,进行各个界面的
切换。S4是下键,用来切换到下一界面。S5是右键,用于光标的移动,在手动模式下可以打开所有灯光。S6是切
换、确定键,可以用来切换手动模式和自动模式,也可用来进行确定的功能。
3.3 显示电路
对人类社会来说,信息是整个人类社会生存所必要的,我们每时每刻都在通过感觉器官从外界获取信息,而这
其中,视觉带给我们的信息高达70%,同时,视觉带来的信息也最准确可靠。
对整个控制来说,显示电路主要服务于人机交互,是用来将输入的人工指令,与当前系统的运行状态进行显示
的电路,使得整个系统的运行状态被可视化。
LCD显示技术具有使内容得到更清晰的显示,画面稳定,不易干扰,辐射小等众多特点,因此被广泛的使用。在本控
制系统中,我们选用LCD1602进行数据显示,显示的内容主要是时间、光照强度、10秒计时以及工作时间和光照强度
的设定等。
LCD1602可同时显示32个字符,其工作原理是利用液晶的物理性质,通过电压来控制显示屏,开机后,显示屏就
会自动出现。它的优点是显示质量高,数字接口,体积小,重量轻,功耗低。
表3-1 LCD1602功能及引脚
引脚号 引脚名 电平 输入/输出 作用
1 Vss 电源地
2 Vcc 电源(+5v)
3 Vee 对比调整电压
4 RS 0/1 输入 0=输入指令
1=输入数据
5 R/W 0/1 输入 0=向LCD写入指令或数据
1=从LCD读取信息
6 E 1,1-0 输入 使能信号,1时读取信息,1-0(下降沿)执行命令
7 DB0 0/1 输入/输出 数据总线line0(最低位)
8 DB1 0/1 输入/输出 数据总线line1
9 DB2 0/1 输入/输出 数据总线line2
10 DB3 0/1 输入/输出 数据总线line3
11 DB4 0/1 输入/输出 数据总线line4
12 DB5 0/1 输入/输出 数据总线line5
13 DB6 0/1 输入/输出 数据总线line6
14 DB7 0/1 输入/输出 数据总线line7(最高位)
15 A +Vcc LCD背光电源正极
16 K 接地 LCD背光电源负极
其中,VL引脚是用来调节对比度的,对比度过浅,字的显示会不清楚。
3.4 电源输入
在电源输入中,本设计采用了DC002插座,跟排针相比,DC电源座既可以供电方便又可以防止反接,另外,该插
座也可以很方便的在万用板上插接;开关部分采用的是一个简易的拨动开关,相比于自锁开关,自锁开关的触电电
流太小,并且还不够稳定,而这个简易的拨动开关就能避免这些缺点。D9是用作电源指示灯。
拨动开关闭合,电源输入电路通电工作,指示灯点亮。
3.5 时钟电路
目前,常用的时钟电路分为很多种,在本设计中我们选择了DS1302作为时钟芯片,其主要特点是采用了串行数
据通信,能够为掉电保护电源提供可编程的充电功能,并且可以关闭充电保护,采用普通32.768kHz晶振。
DS1302是美国 DALLAS公司开发的高性能、低功耗、带RAM的实时时钟电路。具有闰年补偿作用,能对年、月、
日、时、分、秒进行计时,可在2.0~5.5V电压下工作。该系统通过三路接口实现与 CPU的同步通讯,同时可以通过
突发的方式同时传输多个时钟和 RAM的数据。DS1302中有31×8的 RAM暂存器,可以临时存储数据。DS1302是DS1202
的一个升级版,它与DS1202相容,但是它还加入了一个主/备用电源的双电源插头,并为备用电源供电[8][13]。
DS1302有两个电源接口,如图3-6,左边的为主电源,右边的为后备电源。当主电源断开时,时钟仍能正常运
行。该芯片由两个电源中较大的一个供电,当VCC2大于VCC1+0.2V时,由VCC2供电,当VCC1大于VCC2时,VCC1供电。
X1和X2是振荡源,外接32.768kHz晶振。RST是复位,I/O是串行数据输入/输出端,SCLK是时钟输入端。
时钟芯片与单片机连接只需要将SCLK、I/O、RST这三根线相连。
3.6 蜂鸣器报警电路
在报警电路中,本设计采用了一个蜂鸣器和一个LED发光二极管和PNP型三极管,结合声音和光亮两方面发出警
报,便于工作人员发现。
在电路中添加了PNP型三极管,因为在该单片机中,上电默认为高电平,在上电的一瞬间就会进行声光报警,如
果选用NPN型三极管就会导致此现象的发生。当单片机的P2.0引脚输出一个低电平时,Q2导通,报警电路工作,蜂鸣器发声,二极管发光;当P2.0引脚输出一个高电平时,Q2截止,报警电路不工作。
3.7 路灯及光敏传感器模块
在该部分中,我们采用光敏电阻作为光敏传感器件,光敏电阻是利用光电效应做成的一个可以根据光照的强弱而改
变电阻值的电阻器,光照增强,电阻减小,光照减弱,电阻增大。USB小灯代替路灯,可以5V供电,便于实物的设
计。USB接口采用立式的。利用光电阻的特性再结合三极管的开关特性构成检测电路。
电路图中,采用了三个光敏电阻,R5、R10放在两个路灯的旁边,是用来检测两个路灯的亮度,如果路灯该点
亮,而光敏电阻没有检测到路灯的亮度,即证明路灯出现故障,出发报警;在非工作时间内(白天)R14用于检测周
围环境光的强度,通过周围环境光的强度与设定的光照阈值的比较,决定路灯是否需要点亮。PNP型三极管的采用是
因为单片机一上电默认就是高电平,如果采用NPN型三极管,一上电路灯就会点亮,可能会影响功能的实现,所以选
用了PNP型三极管。
3.8 HC-SR501红外感应模块
在本设计中,红外感应模块是用于交通检测的,通过HC-SR501这一红外检测传感器可以实时监测移动物体,该
传感器通过人体或车辆进入其感应范围,对单片机输出指令,产生相应动作,
VCC引脚为外接供电电源输入端,GND为地线,OUT为输出引脚;该传感器具有灵敏度高、可靠性强、节能、性价
比高等特点。
电路的工作原理是利用HC-SR501作为行人、车辆走过的反馈输入机制,当人进入其感应范围该模块则输出高电
平,人离开感应范围则自动延时关闭高电平,输出低电平,再通过一个PNP型三极管可以将该信号输入到单片机中。
3.9 ADC采集模块
ADC采集电路是对三个光敏电阻进行数据采集、转换,将转换后的结果传送给单片机并在LCD1602进行显示,
ADC0832这款芯片有8位分辨率,可对两路模拟信号进行A/D转换,工作模式可选择单端输入或差分输入两种模式
,其引脚功能为如下:
CLK为芯片输入时钟信号;GND、VCC分别接地、接5V电压;CH0、CH1可以用作于输入模拟信号至ADC0832;DI用
作于输入数据信号,另一个作用是选择通道控制;CS为片选使能端,当处于低电平时芯片使能;DO一般作用是输出
数据信号,还可以用作转换数据的输出。
在电路中有两片ADC0832芯片,其通讯方式为IIC,U2采集转换的是检测周围环境亮度的光敏电阻的数据,U3采
集转换的是用于检测两个路灯工作状态的光敏电阻的数据。
3.10 蓝牙模块
本设计采用的是BT06蓝牙串口模块,本模块支持串行接口,支持SP蓝牙串口协议,具有成本低,体积小、收发
灵敏性高等特点,只需要配备少许的外围原件就能实现功能,通过4PIN的排母连接,
其引脚功能如表3-2所示。
表3-2 蓝牙串口引脚功能
管脚号 名称 类型 功能描述
1 UART-TX CMOS输出 串口数据输出
2 UART-RX CMOS输入 串口数据输入
3 NC 双向 NC(请悬空)
4 NC 双向 NC(请悬空)
5 P00 双向 可编程输入/输出口
6 P01 双向 可编程输入/输出口
7 P40 双向 可编程输入/输出口
8 P35 双向 可编程输入/输出口
9 P45 双向 可编程输入/输出口
10 NC 双向 NC(请悬空)
11 RESETB CMOS输入 复位/重启键(低电平复位)
12 3.3V 电源输入 +3.3V电源
13 GND 地 地
14 P27 双向 可编程输入/输出口
15 P10 双向 可编程输入/输出口
16 P14 双向 可编程输入/输出口
通过该蓝牙模块与单片机的连接,可以实现单片机向蓝牙串口传送系统运行状态,也可以通过蓝牙串口向单片
机发送指令。每隔5秒单片机就会向蓝牙串口发送一次两个路灯的运行状态、发送时间、当前光照强度以及当前的控
制方式。我们也可以通过蓝牙串口对路灯的亮度、控制方式等进行切换。
4 系统软件设计
系统硬件结构一经确定,系统的功能框架即已形成。在硬件的平台上搭建软件,以此完成各模块的控制与调
试。系统的各项功能都是由软硬件协同完成的,但由于软件的扩展性,最终的系统性能也会发生变化。所以,系统
的核心是软件的设计。软件是模块化的,一方面可以使编程简单,调试便捷;另一方面也可减小软件的错误率并且
能提高软件的稳定性。同时,全面的软件测试也是检验错误和故障排除的一种重要方法。因为编程过程中会用到很
多的数值运算,比较复杂,还有对液晶的显示和按键程序的设计都是需要多重选择进行判断,用汇编语言编程很难
实现,所以我选择了移植性好、结构清晰、能进行复杂运算的C语言来实现编程[11,12] [14-17]。
4.1 液晶显示界面
在本设计中,我们采用了液晶显示模块,该模块的作用主要是用来显示实时监测的内容,还有对一些参数进行
设置的界面。它的显示内容包括:实时时间、工作状态、光照阈值、光照强度以及设定的工作时间等
在实际应用中,因为液晶显示的速度相对于单片机来说较慢,如果不进行速度的匹配就会导致因数据丢失而造
成的乱码显示,所以,在编写程序时,应该注意到两者之间的速度匹配问题。解决这一问题的办法有两种,第一个
是在写入数据之前先判断是否正在处理数据,只要液晶处于闲的状态,就会有新数据写入;第二个是通过延时等待
它的“忙”状态结束,然后再写入新数据。该系统中选用了第一个,流程图如图4-1所示[8][18-20]。
图4-1 液晶显示流程图
4.2 实时时钟
时间模块作为系统运行的一个依据,对整个系统的控制具有重要作用,在路灯的控制过程中,时间控制是一种
合理有效的节能方式,性价比非常高。本设计采用的是DS1302时钟芯片来获取标准的时钟信息,包括年、月、日、
星期以及时、分、秒;时间采用24小时制,且时间可以进行调整。
4.3 键盘设定
键盘作为一个输入模块,在单片机系统的应用中,主要的功能是用来传输数据,输送指令,起到人机交互的作
用。在本系统中选用的是非编码独立式结构键盘,具有上、下、左、右、确定/切换以及设置六个按键。六个按键的
使用功能如下:
(1)“上”、“下”键
“上”键的功能主要有两种,一是在非设置状态下:按下“上”键是用来切换界面,即切换到上一界面;二是
在设置状态下:按下“上”键则是用来进行数值增加的。“下”键的功能同样有两种,即切换到下一界面和减小数
值。
(2)“左”、“右”键
在非设置状态下,“左”键是用来关闭所有灯光,“右”键是用来打开所有灯光;在设置状态下,“左”键是
用来切换设置位置,即光标向左移动,“右”键同样是切换设置位置,使光标向右移动。
(3)“切换、确定”键
在非设置状态下,“切换、确定”键是用来手动/自动切换;在设置状态下,是用来进行“确认”功能,即保存设置并退出设置状态。
(4)“设置”键
“设置”键是用来进入对应的设置界面。
在软件设计中,键盘的识别和对应是必须的,而按键的识别通常是通过查询和中间断开来完成的。在对话时,
处理器会先关掉中断,等到对话完成后再开启,而对于每一次的按键操作,只有在松开之后,才能做出反应[8]。
4.4 全局控制
在软件设计中,这一模块为控制核心,设计好该系统的运行方式以后,该模块完成控制功能,包括路灯的实时
监测、路灯控制以及故障检测等模块。
(1)实时监测
在实时监测模块中,系统运行中路灯的各项参数都会在显示屏中显示,每秒钟检测一次,其内容有实时时间、
手动/自动方式、故障情况、工作状态。
(2)路灯控制
在路灯控制模块中,系统首先会检测光照强度,再进行手动/自动的判断,如果是手动模式,系统会返回主程序。
在自动控制路灯工作状态中,是在没有人工参与的条件下,根据周围环境光的强度与交通情况决定路灯是否工
作,从而达到节约能源的目的。
如果是自动模式,就会接着判断是否在工作时间内,如果在工作时间内路灯A会点亮,此时,又会进行特定时间
段的判断,如果在特定时间内有人经过路灯B也会点亮10秒,如果没人进过,路灯B会保持熄灭的状态。如果不是在
特定时间内,路灯B点亮。在工作时间的判断中,如果不是在工作时间内,就会根据周围环境光与设定的光照阈值的
比较控制路灯的工作状态。
在灯光控制方面,除了根据系统设定的流程进行控制外,还可以利用蓝牙串口向单片机发送指令,进行手动、
自动控制方式的切换,也可改变路灯的亮度。
(3)路灯故障检测
传统的路灯故障检测方式需要采用人力巡逻,会造成人力、物力的浪费,并且路灯如果出现故障更会影响交通
的运行。所以在该设计中,我们才用了声光报警的方式,如果有路灯出现故障,就会发出声光报警,显示屏也会显
示是那个路灯出现故障,同时也会通过蓝牙串口传送到工作人员手中,以便进行快速检修。其流程图如图4-6所示。
图4-6 故障检测流程图
结合上述各模块的描述,全局控制的流程图如图4-7所示。
图4-7 全局控制流程图
5系统仿真与调试
软件的功能实现离不开模拟和调试。但是,软件是以硬件为基础的,如果要调试的话,可以通过硬件来实现,
但是,在软件开发的时候,要先把硬件做好,然后再进行调试,这样不仅缩短了设计的时间,而且还增加了调试的
难度。这种矛盾可以通过计算机技术的作用来解决,也就是采用模拟软件来进行软件的调试和硬件的同步设计。在
仿真时,对各个模块进行了模拟和设计,并对各个模块进行了编程和调试,最终完成了整个系统的测试。
本设计采用Keil编程软件与Proteus仿真软件对路灯节能控制系统进行了仿真与调试。
5.1 Keil软件的介绍
Keil是当前最受欢迎的MCS-51系列MCS-51系列的软件, Keil提供了一套完整的开发方案,其中包含 C编译器,
宏汇编,连接器,库管理,以及一个强大的模拟调试程序,通过一个集成开发环境(uVision)将这些部分组合在一
起。
本设计以Keil5为例,采用Keil编程一般需要以下几个步骤:
(1)在桌面新建一个文件夹。
(2)打开Keil5创建工程,在Project中选择New uVision project并把工程保存在新建文件夹中。
(3)选择单片机芯片型号
(4)点击标题栏的新建按钮,会出现一个text1,点击保存,在弹出的对话框内给需要保存的文件命名,如果
是C语言就在文件名后加上.c,如果是汇编语言就在文件名后加.asm。
(5)选中Source group 1,右键,出现一个add files to source group 1,点击确定。
(6)运行编译,生成hex文件,将生成的hex文件写入到单片机系统中。
5.2 proteus软件的介绍
Proteus软件是由英国创立的一个 EDA软件。该系统不但具备其他 EDA软件的模拟仿真功能,而且可以对 MCU和
周边设备进行模拟。这是较好的模拟微处理器和周边设备的工具。虽然它在国内才刚刚起步,但它已被广大的 MCU
爱好者、教学工作者以及从事 MCU开发与应用的研究人员所钟爱。
该软件使用方法简单,只需要在工具栏中点击P按钮(从库中选择元器件),将需要的元器件放置在编辑区,进
行位置、参数调整,再将各个器件连线即可生成仿真电路。
5.3 系统仿真分析
在该系统仿真模块中对主要电路进行了仿真分析。
5.3.1 键盘电路仿真
如图5-1所示,当“设置”按键按下时,系统进入设置状态,光标在对应位置进行显示,按下“上”、“下”按
键时,上下界面进行切换,“左”、“右”按键移动光标,其余按键均能实现其功能。根据仿真分析,键盘电路正
常运行。
图5-1 键盘电路仿真图
5.3.2 显示电路仿真
如图5-2,当系统运行,完成初始化后,LCD1602液晶显示屏能正常显示实时时间、光照强度以及控制方式,由此说
明显示电路也能正常工作。
图5-2 液晶显示仿真图
5.3.3 红外感应模块仿真
如图5-3所示,当有移动物体(行人或车辆)通过时,路灯A点亮,路灯B带点亮10秒,10秒后自动熄灭;当没有移动
服务提(行人或车辆)通过时,路灯A点亮,路灯B保持熄灭,说明移动物体检测功能正常。
图5-3 红外感应仿真图
5.3.4 环境监测模块仿真
如图5-4,当白天的光照强度低于设定的光照阈值时,路灯A和路灯B点亮;当白天的光照强度高于设定的光照强
度时,路灯A和路灯B保持熄灭。说明环境光检测仿真功能正常。
图5-4 环境监测仿真图
5.3.5 故障检测功能仿真
如图5-5所示,当两个路灯应该正常工作(点亮)而未正常工作(未点亮)时,故障检测电路发出声光报警,蜂
鸣器发声、红色指示灯点亮、显示屏显示。说明故障检测功能正常。
图5-5 故障检测功能仿真图
5.3.6 蓝牙功能仿真
如图5-6,系统运行,初始化以后,单片机每隔5秒向蓝牙串口发送一次系统的运行信息,并且通过蓝牙串口可
以向单片机发送指令,改变控制方式及路灯的亮度等。蓝牙向单片机发送的指令规定为:Ax#或Bx#表示控制灯光
强度指令,A/B表示路灯A/路灯B, x表示灯光强度,*MM#表示切换为手动控制指令,MA#表示切换为自动控制指令。
输入MA#,系统切换到自动模式,说明蓝牙功能仿真正常。
图5-6 蓝牙功能仿真
6 总结
随着社会的发展,城市的市政事业也在不断地发展,路灯照明系统对人们的生活显得格外重要。越来越多的路
灯应用于城市、农村的道路上,也造成了电力资源的大量耗费,导致市政每年都有大笔支出用于路灯照明的电力方
面,因此研究路灯节能控制系统具有十分重要的意义。本文着眼于目前的过度照明造成电力资源浪费以及传统人工
巡检的滞后性,设计了一种基于单片机的路灯节能控制系统,在不影响正常照明的情况下,达到了节能的目的,同
时解决了人工巡检的问题。
本文完成的主要工作如下:
(1)结合国内外研究现状,对目前比较常见的路灯控制系统进行了分析比对,确定了设计方案;
(2)根据系统所要实现的功能,完成了器件选型,设计了以STC89C52RC单片机为控制核心的主供回路。
(3)针对在后半夜车辆、行人较少时,采用了红外传感器检测是否有行人通过;在环境天气条件恶劣的情况
下,采用了光敏电阻检测光强;在无线通讯方面采用了蓝牙模块,便于实时接收路灯的工作状态,另外还设计了声
光报警,便于人工巡检;
作者:q_1039692211