智能路灯控制系统.docx

上传人:b****3 文档编号:26573455 上传时间:2023-06-20 格式:DOCX 页数:13 大小:283.56KB
下载 相关 举报
智能路灯控制系统.docx_第1页
第1页 / 共13页
智能路灯控制系统.docx_第2页
第2页 / 共13页
智能路灯控制系统.docx_第3页
第3页 / 共13页
智能路灯控制系统.docx_第4页
第4页 / 共13页
智能路灯控制系统.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

智能路灯控制系统.docx

《智能路灯控制系统.docx》由会员分享,可在线阅读,更多相关《智能路灯控制系统.docx(13页珍藏版)》请在冰豆网上搜索。

智能路灯控制系统.docx

智能路灯控制系统

漯河职业技术学院

王南南

2011-6-19

智能路灯控制系统

漯河职业技术学院尚朋涛董晓广王南南

摘要

随着科学技术的高速发展,自动化、智能化已经深入人们的工作、学习以及生活。

给人们带来了很多方便,使人们可以不花费体力去做一些必要的事情。

但是在追求方便、自动化、智能化的同时,还应考虑节能问题。

本设计本着着简单、通用、智能、节能的原则,采用功能模块匹配互连的思想。

系统自动测光,通过STC90C516单片机分析控制,自动调节路灯的亮度。

在测量范围内,任何时间光线强度的变换,路灯亮度都会做相应的调整,即亮度无档位调整。

光线强度与路灯的亮度成正弦函数关系。

这是本设计的特色。

根据设计功能的需要,系统主分为4大模块:

电源模块、测光模块、控制模块、执行模块。

期中,测量模块主要采用光敏电阻测光,控制模块采用单片机软件程序设计,执行模块采用发光电阻。

4个模块匹配互连实现智能控制路灯亮度的功能。

1.方案设计与论证

1.1方案设计:

按设计要求,系统需要根据光线的改变来改变路灯的亮度。

通过对题目要求的理解,本队讨论出以下三种可实施性方案:

1.1.1方案一:

测光模块采用以光敏电阻为主要元器件的光敏模块,控制模块采用FPGA芯片烧入软件程序来实现,执行模块采用发光电阻模块。

该方案控制模块的设计比较灵活,可以用程序输入和原理图输入两种方法,但是FPGA芯片内部不含振荡电路,需要设计外部振荡电路,而且FPGA单片价格比较昂贵,设计简单系统较浪费。

1.1.2方案二:

测光模块采用以光敏电阻为主要元器件的光敏模块,控制模块采用STC90C516单片机芯片烧入软件程序来实现,执行模块采用发光电阻模块。

该方案控制模块采用STC90C516单片机来控制。

STC90C516单片机芯片内部含有振荡电路,不需要设计外部振荡电路。

而且STC90C516价格相对比较便宜,易于购买,适合设计简单的小型电路。

但是STC90C516功能单一,另外51单片机需要仿真器来实现软硬件调试,较为烦琐。

1.1.3方案三:

测光模块采用以光敏电阻为主要元器件的光敏模块,控制模块不采用芯片,用驱动放大电路直接放大测光模块的电信号,将放大后的电信号送入LED模块改变路灯的亮度。

该方案设计比较简单,三个模拟电路模块匹配互连,不使用任何数字芯片,设计成本较低。

但是该方案不能是使路灯完全熄灭和达到最高亮度,即全灭和全亮,而且该该方案系统抗干扰能力较弱,路灯亮度不稳定。

1.2方案论证:

方案一中由于FPGA芯片不含内部振荡电路,所以在设计硬件电路的时候要设计外围振荡电路,较方案二、三复杂一点,而且FPGA芯片比较昂贵。

但是在设计控制电路的时候比较灵活。

方案二采用含内部振荡电路的STC90C516单片机做控制模块的主要芯片,硬件电路设计简单,而且STC90C516单片机价格较便宜,易于购买。

方案三没有专门的控制模块,电路设计比较简单,但是它不能使路灯全灭和全亮,即不能够发挥路灯的最大性能,还会减短路灯的使用寿命,而且抗干扰能力较弱,路灯亮度不稳定。

1.3方案选定:

智能化产品必须要求抗干扰能力强、稳定性好,而且本着简单、通用、智能、节能的原则,我们采用方案二进行设计。

2.硬件电路设计

2.1测光模块电路设计:

测光模块主要采用NE555时基电路芯片,电位器(光敏电阻仿真替代元件)。

系统运行,控制模块周期性的访问测光模块,向测光模块发送低电平,低电平通过R4进入Q3,是Q3导通,NE555的GND端变为低电平,NE555开始工作。

理想状态下,自然光线保持不变,即光敏电阻RV1阻值不变,C2的冲放电速度不变。

C2冲放电一次为一个频率,C2充放电速度不变,从而NE555通过3脚向控制模块发送频率固定不变的矩形波。

如果自然光线改变,即光敏电阻RV1的阻值改变,C2的充放电速度改变,NE555通过3脚向控制模块发送频率相应改变过的矩形波。

2.2控制模块电路设计:

STC90C516单片机最小系统。

12MHz晶振与C3、C4协同单片机内部振荡电路共同为单片机提供12MHz的时钟振荡频率。

STC90C51单片机9脚通过R3接地,使控STC90C51单片机开机自动复位。

2.3执行模块电路设计:

执行模块采用LED发光二极管,LED发光二极管的阳极共同接高电平。

控制模块向Q1基极发送高低电平,Q1端高低电平转换的频率越高,Q1导通的频率就越高,LED发光二极管就越亮,频率越低,Q1导通的频率就越低,LED发光二极管就越暗。

当频率高到一定程度时,LED发光二极管全亮,当频率低到一定程度时,LED发光二极管全灭,这个频率由控制模块软件程序决定。

2.4整机电路设计:

系统运行,控制模块通过STC90C516的p3.2脚向测光模块发送低电平访问测光模块,低电平经过R4偏置使Q3导通,NE555开始工作。

NE555通过3脚发送矩形波给控制模块,矩形波通过控制模块STC90C516的P1.0脚进入STC90C516。

STC90C516根据软件程序分析矩形波频率,再将相应的矩形波通过P0.0传送给执行模块中Q1的基极,使Q1按相应的频率导通、截止。

2.5软件程序设计:

本程序主要完成以下几项功能:

①读是否有光线信号②计算脉冲个数③分析脉冲个数④执行相应输出。

2.6软件程序设计流程图:

3.测试方法与测试结果

3.1测试仪器:

数字存储示波器(UT2062CE)数字万用表

3.2测试方法:

①系统运行,让LED灯达到全灭状态,用万用表测量光敏电阻的阻值,通告观察示波器的波形,计算NE555输出的矩形波频率;

②系统运行,让LED灯达到全亮状态,用万用表测量光敏电阻的阻值;通告观察示波器的波形,计算NE555输出的矩形波频率;

③将测光模块置于三种不同强度但稳定的光线环境中,分别用万用表测量光敏电阻的阻值,通过观察示波器的波形,计算NE555输出的矩形波频率;

3.3测试结果:

表1LED固定灯状态下阻值与频率确定

LED状态

阻值(Ω)

频率(Hz)

全灭

200

30M

全亮

150K

7K

表2不同光线下阻值与频率测试

光线强度

阻值(Ω)

频率(MHz)

130K

6K

正常

9K

750K

150

33M

4.讨论

进过对测试数据分析,以及对实物演示的观察,设计完成的实物完全符合设计题目的要求,能够自动测光,自动无档位调节LED等的亮度。

本设计在硬件电路设计比较为简单,由于此设计未使用专门的A\D转换芯片,所以通过软件编程实现PWM信号输出。

渐变效果明显,可以达到与A\D转换输出相同的效果。

在测试阶段,由于系统运行中无法直接测量光敏电阻的阻值,所以需要在系统运行中先从示波器获得频率,然后终止系统,在与获得频率相同的状态下测量光敏电阻的阻值。

这样一来,测量数据会有一定的误差,根据系统的特色分析,由于系统是无档位调节,所以测量数据的误差不影响系统的使用。

【附录】

5.1LED全亮状态下NE555输出波形

5.2LED全灭状态下NE555输出波形

5.3测光模块实物图片

5.4源程序代码

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharnum,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)

{

flag=0;

if(count<3)

{

count=0;

led=0;

}

elseif((count>3)&&(count<10))

{

led0(count/1,count-count/1);

count=0;

}

}

if(flag1)

{

flag1=0;

led=1;

while(count--);

count=0;

}

}

}

voidinit()interrupt0

{

TR0=1;

count++;

if(count>1100)

{

flag=0;

flag1=1;

}

}

voidtime0()interrupt1

{

num++;

if(num==4)

{num=0;

flag=1;//1ms标志位

}

}

【参考文献】

1.张伟林王翠兰《数字电子技术》人民邮电出版社,2009

2.戴仙金《51单片机及C语言程序开发实例》清华大学出版社2007

3.张志良《单片机原理与控制技术》第二版机械工业出版社2005

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1