1智能路灯控制系统设计论文漯河职业技术学院王南南2011-6-192智能路灯控制系统漯河职业技术学院尚朋涛董晓广王南南摘要随着科学技术的高速发展,自动化、智能化已经深入人们的工作、学习以及生活。给人们带来了很多方便,使人们可以不花费体力去做一些必要的事情。但是在追求方便、自动化、智能化的同时,还应考虑节能问题。本设计本着着简单、通用、智能、节能的原则,采用功能模块匹配互连的思想。系统自动测光,通过STC90C516单片机分析控制,自动调节路灯的亮度。在测量范围内,任何时间光线强度的变换,路灯亮度都会做相应的调整,即亮度无档位调整。光线强度与路灯的亮度成正弦函数关系。这是本设计的特色。根据设计功能的需要,系统主分为4大模块:电源模块、测光模块、控制模块、执行模块。期中,测量模块主要采用光敏电阻测光,控制模块采用单片机软件程序设计,执行模块采用发光电阻。4个模块匹配互连实现智能控制路灯亮度的功能。1.方案设计与论证1.1方案设计:按设计要求,系统需要根据光线的改变来改变路灯的亮度。通过对题目要求的理解,本队讨论出以下三种可实施性方案:1.1.1方案一:测光模块采用以光敏电阻为主要元器件的光敏模块,控制模块采用FPGA芯片烧入软件程序来实现,执行模块采用发光电阻模块。该方案控制模块的设计比较灵活,可以用程序输入和原3理图输入两种方法,但是FPGA芯片内部不含振荡电路,需要设计外部振荡电路,而且FPGA单片价格比较昂贵,设计简单系统较浪费。1.1.2方案二:测光模块采用以光敏电阻为主要元器件的光敏模块,控制模块采用STC90C516单片机芯片烧入软件程序来实现,执行模块采用发光电阻模块。该方案控制模块采用STC90C516单片机来控制。STC90C516单片机芯片内部含有振荡电路,不需要设计外部振荡电路。而且STC90C516价格相对比较便宜,易于购买,适合设计简单的小型电路。但是STC90C516功能单一,另外51单片机需要仿真器来实现软硬件调试,较为烦琐。41.1.3方案三:测光模块采用以光敏电阻为主要元器件的光敏模块,控制模块不采用芯片,用驱动放大电路直接放大测光模块的电信号,将放大后的电信号送入LED模块改变路灯的亮度。该方案设计比较简单,三个模拟电路模块匹配互连,不使用任何数字芯片,设计成本较低。但是该方案不能是使路灯完全熄灭和达到最高亮度,即全灭和全亮,而且该该方案系统抗干扰能力较弱,路灯亮度不稳定。1.2方案论证:方案一中由于FPGA芯片不含内部振荡电路,所以在设计硬件电路的时候要设计外围振荡电路,较方案二、三复杂一点,而且FPGA芯片比较昂贵。但是在设计控制电路的时候比较灵活。方案二采用含内部振荡电路的STC90C516单片机做控制模块的主要芯片,硬件电路设计简单,而且STC90C516单片机价格较便宜,易于购买。方案三没有专门的控制模块,电路设计比较简单,但是它不能使路灯全灭和全亮,即不能够发挥路灯的最大性能,还会减短路灯的使用寿命,而且抗干扰能力较弱,路灯亮度不稳定。1.3方案选定:智能化产品必须要求抗干扰能力强、稳定性好,而且本着简单、通用、智能、节能的原则,我们采用方案二进行设计。52.硬件电路设计2.1测光模块电路设计:测光模块主要采用NE555时基电路芯片,电位器(光敏电阻仿真替代元件)。系统运行,控制模块周期性的访问测光模块,向测光模块发送低电平,低电平通过R4进入Q3,是Q3导通,NE555的GND端变为低电平,NE555开始工作。理想状态下,自然光线保持不变,即光敏电阻RV1阻值不变,C2的冲放电速度不变。C2冲放电一次为一个频率,C2充放电速度不变,从而NE555通过3脚向控制模块发送频率固定不变的矩形波。如果自然光线改变,即光敏电阻RV1的阻值改变,C2的充放电速度改变,NE555通过3脚向控制模块发送频率相应改变过的矩形波。62.2控制模块电路设计:STC90C516单片机最小系统。12MHz晶振与C3、C4协同单片机内部振荡电路共同为单片机提供12MHz的时钟振荡频率。STC90C51单片机9脚通过R3接地,使控STC90C51单片机开机自动复位。2.3执行模块电路设计:执行模块采用LED发光二极管,LED发光二极管的阳极共同接高电平。控制模块向Q1基极发送高低电平,Q1端高低电平转换的频率越高,Q1导通的频率就越高,LED发光二极管就越亮,频率越低,Q1导通的频率就越低,LED发光二极管就越暗。当频率高到一定程度时,LED发光二极管全亮,当频率低到一定程度时,LED发光二极管全灭,这个频率由控制模块软件程序决定。72.4整机电路设计:系统运行,控制模块通过STC90C516的p3.2脚向测光模块发送低电平访问测光模块,低电平经过R4偏置使Q3导通,NE555开始工作。NE555通过3脚发送矩形波给控制模块,矩形波通过控制模块STC90C516的P1.0脚进入STC90C516。STC90C516根据软件程序分析矩形波频率,再将相应的矩形波通过P0.0传送给执行模块中Q1的基极,使Q1按相应的频率导通、截止。82.5软件程序设计:本程序主要完成以下几项功能:①读是否有光线信号②计算脉冲个数③分析脉冲个数④执行相应输出。2.6软件程序设计流程图:93.测试方法与测试结果3.1测试仪器:数字存储示波器(UT2062CE)数字万用表3.2测试方法:①系统运行,让LED灯达到全灭状态,用万用表测量光敏电阻的阻值,通告观察示波器的波形,计算NE555输出的矩形波频率;②系统运行,让LED灯达到全亮状态,用万用表测量光敏电阻的阻值;通告观察示波器的波形,计算NE555输出的矩形波频率;③将测光模块置于三种不同强度但稳定的光线环境中,分别用万用表测量光敏电阻的阻值,通过观察示波器的波形,计算NE555输出的矩形波频率;3.3测试结果:表1LED固定灯状态下阻值与频率确定LED状态阻值(Ω)频率(Hz)全灭20030M全亮150K7K表2不同光线下阻值与频率测试光线强度阻值(Ω)频率(MHz)弱130K6K正常9K750K强15033M104.讨论进过对测试数据分析,以及对实物演示的观察,设计完成的实物完全符合设计题目的要求,能够自动测光,自动无档位调节LED等的亮度。本设计在硬件电路设计比较为简单,由于此设计未使用专门的A\D转换芯片,所以通过软件编程实现PWM信号输出。渐变效果明显,可以达到与A\D转换输出相同的效果。在测试阶段,由于系统运行中无法直接测量光敏电阻的阻值,所以需要在系统运行中先从示波器获得频率,然后终止系统,在与获得频率相同的状态下测量光敏电阻的阻值。这样一来,测量数据会有一定的误差,根据系统的特色分析,由于系统是无档位调节,所以测量数据的误差不影响系统的使用。【附录】5.1LED全亮状态下NE555输出波形115.2LED全灭状态下NE555输出波形5.3测光模块实物图片125.4源程序代码#includereg51.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintucharnum,flag,flag1;uintcount;sbitled=P0^0;sbitled1=P1^0;voidled0(ucharnum,uintcount){led=0;while(num--);led=1;while(count--);}voidint0(){IT0=1;EX0=1;EA=1;}voidtime(){TMOD=0X02;TH0=0;TL0=0;ET0=1;}main(){time();int0();PT0=1;PX0=0;led1=0;while(1){if(flag)13{flag=0;if(count3){count=0;led=0;}elseif((count3)&&(count10)){led0(count/1,count-count/1);count=0;}}if(flag1){flag1=0;led=1;while(count--);count=0;}}}voidinit()interrupt0{TR0=1;count++;if(count1100){flag=0;flag1=1;}}voidtime0()interrupt1{num++;if(num==4){num=0;flag=1;//1ms标志位}}14【参考文献】1.张伟林王翠兰《数字电子技术》人民邮电出版社,20092.戴仙金《51单片机及C语言程序开发实例》清华大学出版社20073.张志良《单片机原理与控制技术》第二版机械工业出版社2005