微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机和光照检测的开关控制b置设计

基于单片机和光照检测的开关控制b置设计

时间:10-15 来源:互联网 点击:

摘要:针对自动开关控制技术的需求,提出一种基于单片机和光照检测的开关控制装置设计。该装置的主要特点为具有光照度检测功能,可以采集环境的光照度并根据设定的光照度自动实现开关的开或关等操作。详细介绍了该装置的硬件和单片机程序的设计方法,并对设计的装置进行了功能测试。测试结果表明,设计的装置能实现光照检测、光照度上下限值设定、开关自动控制和数据显示等各种功能,运行效果良好。

0 引言

自动开关控制能根据需要的情况自动打开或切断开关,有利于节省人力和提高控制效率,为人们的生产生活带来便利和节省能源。

随着电子技术和微机技术的发展,自动开关控制技术发展迅速,提出了各种类型的自动开关控制装置,如基于MCS-51单片机的多路开关控制装置、单片机控制的热释电红外节能照明开关、基于AT89S52单片机的声光控制开关、基于SPCE061A的语音手动双控制开关和智能计量与开关控制插座等。

针对自动开关控制技术的需求和发展趋势,本文提出一种基于单片机和光照检测的开关控制装置设计。此装置具有光照度检测功能,可以采集环境的光照度并根据设定的光照度自动实现开关的开或关等操作。

1 装置工作原理和功能

基于单片机和光照检测的开关控制装置的工作原理示意图如图1所示,其工作原理为:单片机检测环境光照度,若在一定的时间间隔内两次检测的光照度都小于设定的光照度下限值且开关状态为关,则打开开关;若在一定的时间间隔内两次检测的光照度都大于设定的光照度上限值且开关状态为开,则关闭开关。

基于单片机和光照检测的开关控制装置需要实现的功能为:1)光照检测;2)光照度下限值和上限值设定;3)开关自动控制;4)数据显示:显示采集的光照度和设定的光照度下限值和上限值。

2 硬件设计

2.1 硬件结构

根据需要实现的功能,基于单片机和光照检测的开关控制装置的硬件结构如图2所示。装置以AT89C51单片机为核心,外围电路包括时钟电路、复位电路、光照检测电路、LM016L液晶显示电路、开关控制电路和键盘电路。

2.2 光照检测电路

光照检测电路的详细设计如图3所示,其工作原理为:1)利用硅光电池BPW34将光照度信号转换为电流信号,BPW34具有产生的短路电流与光照度成正比的特性;2)通过以运算放大器LM358为核心构成的放大电路将BPW34产生的短路电流信号转换为电压信号并放大;3)AT89C51单片机控制ADC器件ADC0809采集放大电路输出的电压信号并计算实际的光照度值。

2.3 开关控制电路

开关控制电路的详细设计如图4所示,其工作原理为:1)光电耦合器TIL 117起光电隔离作用,实现将单片机AT89C51与开关控制部分隔离,从而减小开关控制部分对AT89C51的干扰,提高系统的可靠性,其中驱动芯片7407的作用是为TIL 117提供输入电流;2)继电器G2R-14-DC5实现直接的开关控制,其中晶体管9013的作用是为G2R-14-DC5提供驱动电流,二极管1N4001的作用是防止G2R-14-DC5的感应电压损坏901 3;3)当AT89C51的P2.1引脚输出低电平时,TIL 117产生光电流,使三极管9013导通,从而继电器G2R-14-DC5的线圈得电,常开开关K1闭合,反之则K1断开。

3 单片机程序设计

3.1 总体设计

结合硬件设计和需要实现的功能,装置的单片机程序主要包括如下程序模块:1)光照检测:根据ADC0809的控制逻辑采集光照度转换而来的电压信号,并根据对应公式计算实际的光照度值;2)光照度上下限值设定:通过键盘电路和LM016L液晶显示电路,并采取外部中断的方式,实现光照度上下限值设定;3)开关自动控制:根据检测的光照度和设定的光照度上下限值控制开关控制电路,实现开关自动控制;4)数据显示:控制液晶器件LM016L显示采集的光照度和设定的光照度上下限值。

3.2 光照检测

光照检测程序模块主要包含如下两个步骤:1)根据ADC0809的控制方法进行电压信号采集,ADC0809的关键控制引脚为S7ART、EOC、OE和CLK,分别为启动信号输入端、转换结束信号端、输出允许端和时钟信号输入端;2)根据电压和光照度转换公式计算实际的光照度值。实现光照检测的方法如算法1所示。

算法1:光照检测算法。

sbit START=P2^2;//ADC0809启动信号输入端

sbit EOC=P3^5;//ADC0809转换结束信号端

sbit OE=P2^3;//ADC0809输出允许端

sbit CLK=P3^6;//ADC0809时钟信号输入端

START=0;//ADC0809开始转换

OE=0;//ADC0809不允许输出

if(EOC=1)//如果ADC0809转换结束

{

START=1;//ADC0809停止转换

OE=1;//ADC0809允许输出

ADdata=P0;//读取采集的电压信号

OE=0;//ADC0809不允许输出

illu=ADdata*1.96*4.16667;//将采集的电压信号转换为实际的光照度值

}

3.3 开关自动

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top