APP下载

基于单片机照度测量系统设计与研究

2023-05-25魏立明

日用电器 2023年4期
关键词:高电平照度报警

崔 涵 魏立明

(吉林建筑大学 长春 130118)

引言

随着科学技术水平的发展,人们对于光照质量的要求也在逐渐上升,为了适应不同的生产环境,对于光照的多少也出现了不同的需求[1],为了衡量各种光源的质量水平,就需要通过照度计对光照进行测量[2]。目前大部分的照度计多以光敏二极管作为探测装置,本文使用BH1750 芯片代替作为光照探头,通过芯片内部对数据做的线性处理,使得照度测量更加准确且方便,可以更好满足实际的需要。

1 系统总体设计

本照度测量系统主要硬件包括主控器、显示器和测量芯片。其中主控器选用STC89C52 单片机,该单片机拥有32 个I/O 口,满足本设计需要,并且编程简单,易于使用,加之检测电路、显示电路、报警电路以及键盘电路,实现光信号的采集转换及运算照度。显示器选用LCD1602 液晶显示屏,该液晶屏体积小,功耗低,其所能显示的字符满足本设计需求,同时其调用时序相对容易理解,可以降低编程难度;测量芯片选用BH1750 芯片,其内部具有光敏二管,放大器,数模转换电路以及IIC 总线模块,其可以实现在IIC 上的通信,方便单片机的读取和运算,这样与直接采用光敏二极管测量照度相比,芯片测量更加稳定,结果也更加准确。其余硬件包括按钮、晶振芯片、电阻电容等将按照实际需要选用合适大小,硬件电路结构如图1 所示。

图1 系统方案结构框图

2 硬件系统设计

本文对硬件电路设计进行介绍,基于立创EDA 绘图软件绘制硬件电路图,主要包括单片机最小系统、照度测量模块、显示模块和报警模块,主要硬件选择如表1所示。

表1 主要硬件列表

2.1 单片机最小系统

单片机最小系统是指用最少的元件所组成的可以工作的单片机系统,也是其他硬件电路搭建的基础。主控制器选择STC89C52 单片机,该单片机每次可处理8 位数据,内部具有8 K 字节储存器,包括闪存以及可编程可擦写只读存贮器的单片机[3]。STC89C52 单片机最小系统包括晶振电路、复位电路。通常情况下,STC89C52 单片机的晶振选用11.059 2 MHz,晶振电路还需要两个起振电容用于帮助晶振起振,大小在(5 ~30)pF 之间,一般选取22 pF 或30 pF。单片机中的XTAL1 和XTAL2 接口便是用于接晶振电路的。

2.2 照度测量模块

检测电路依靠BH1750 光检测芯片及其外围电路完成。其中,ADDR 是其选址端,高低电平影响其地址,通过机械开关可以进行手动选取地址,SCL,SDA 是IIC总线接口,与单片机上的IIC 总线相连[4]。将外围电路引出的线引给排针,最后与主电路板的预留排针相连进行使用。值得注意的是,其内部的光敏二极管的光电转换数据虽然是一一对应的,但这些数据并不是线性的,而BH1750 内部对数据做了线性处理,这也是不直接采用光敏二极管测量的原因,照度测量模块硬件电路如图2 所示。

图2 照度测量模块

2.3 显示模块

显示电路主要用于显示测量值以及阈值,通过LCD1602 液晶屏来实现,这种显示屏只有三个控制端,使得源码易于编写,在编程过程中,该函数的调用也比较简单,减少编程的工作量。显示屏连接在单片机的P0口,并且外加上拉电阻来LCD 提高信号稳定程度,增加抵抗外界干扰能力,显示模块硬件电路如图3 所示。

图3 显示模块

2.4 报警模块

当所测的地方的光照值超过某一范围时,需要将这个信号传递给使用者,因而设计了报警模块。报警主要分为两个部分,一部分是通过发光二极管进行报警显示,并且数值超过上下限显示的颜色也不一样;另一部分体现在液晶显示屏幕上,当使用者通过显示屏观察照度值时,如果数值不在范围内,屏幕会显示“!!!”来进行提示,以此来提醒使用者当前环境的照度水平是否合乎标准,报警模块硬件电路如图4 所示。

图4 报警模块

3 软件系统设计

3.1 总体软件设计

本章根据上述硬件电路以及设计要求进行模块化软件设计。采用模块化编程,这样可以为后续的功能拓展带来方便,程序主要分为主函数、显示及报警、模拟IIC协议以及LCD1602 调用程序,如图5 所示。

图5 软件程序设计流程图

3.2 IIC 通信协议流程

本文所用的BH1750 芯片通过IIC 协议进行数据的传输,而STC89C52 单片机并不具有IIC 通信协议的串口,因而需要通过程序进行模拟。IIC 协议的通信共有两根线,为保证数据传输的稳定,避免误传或丢失,IIC 对于传输过程中的数据做了一些规定:数据只能在 SCL 处于低电平的情况下发生变化,并且在 SCL 电平被拉高的情况下,数据必须是稳定的,也就是有效数据[5]。

1)硬件初始化

IIC 具有两根传输线SDA 和SCL,当没有数据传输时,IIC 处于不工作状态,此时SDA 与SCL 均处于高电平,因此,在程序开始前需要将SDA 和SCL 电平拉高,以保证处在非工作状态。

2)开始停止信号

在需要进行数据传输的时候,需要一个开始信号使电平产生变化,同样,在数据传输完毕后也需要一个停止信号将电平拉回停止工作状态。开始信号中SCL 在保持高电平时SDA 由高电平变为低电平,间隔一段时间后SCL 也变为低电平;停止信号中SCL 变为高电平,并且SCL 保持高电平后SDA 由低电平变为高电平[6],开始停止信号时序图如图6 所示。

图6 IIC 启停时序图

3)应答信号

在进行读写操作时,每次数据传输之后,都需要产生应答信号,一般由接收数据的一方发出可以发送数据,总的来说,就是在数据传输后,在传输下8 bit 数据前需要做出响应。应答信号是指在一次8 bit 数据传输后,也就是8 个时钟周期过去后,在SCL 第9 个高电平时将SDA 电平拉低,视为一次ACK 信号[7],应答信号时许如图7 所示。

图7 IIC 应答时序图

4)读写数据

首先由单片机发送开始信号,紧接着发送从机地址并确定读写功能(0×46),之后等待从机的应答信号,之后给从机发送指令(0×10),最后发出停止信号,完成一次数据传输;随后开始读取BH1750 测量结果。先由主机发送开始信号,并发送从机地址并确定读写功能(0×47),然后等待从机应答信号,BH1750 内自带的ADC 是16 位数据转换,也就是两个字节,在读取数据时先读高8 位,即接收一个字节,并向从机发送应答信号,再读低8 位,接收第二个字节,最后给从机应答信号,停止信号,读取完毕,数据传输时序图如图8 所示。

图8 IIC 数据传输时序图

4 测量结果演示及PCB 板展示

本文基于Peoteus 8 仿真软件,来对测量结果进行演示。当阈值设置完成后,可以进行测量,可以看到,当照度值低于阈值设置的范围时,屏幕会出现“!!!”的警告提示,如图9 所示,而当测量值在阈值范围内时,不会出现警告提示,如图10 所示。

图9 报警仿真图

图10 正常测量仿真图

根据所绘制的硬件电路图,基于Altium Designer 软件对PCB 板进行绘制,采用双面布线方式,双面铺铜,PCB 板图如图11 所示。

图11 PCB 板设计图

5 结论

本文主要针对便携式照度测量计进行设计,基于STC89C52 单片机,采用光强检测芯片BH1750 作为探测模块,将采集的信息通过LCD1602 液晶显示屏显示出来。通过按键实现对阈值的自主选择,当测量数据超过或低于阈值的情况下,通过报警模块以及屏幕显示报警,达到对某一区域照度水平进行测量的效果,本文所提方案和方法为照度测量系统提供理论借。

猜你喜欢

高电平照度报警
一种基于FPGA的PWM防错输出控制电路
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
恒照度智慧教室光环境
LKD2-HS型列控中心驱采不一致报警处理
电子投影机照度测量结果的不确定度评定
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析
2015款奔驰E180车安全气囊报警
死于密室的租住者
奔驰E260车安全气囊报警