APP下载

基于单片机的智能风扇研究

2023-06-09张仕宽莫坤罗旭苏婷段明明

电子制作 2023年8期
关键词:低电平时序按键

张仕宽,莫坤,罗旭,苏婷,段明明

(兴义民族师范学院,贵州黔西,562400)

0 引言

风扇是人们在夏天降温避暑的利器,因其具有价格便宜和使用方便的优点而深受人们的喜爱。但是由于传统风扇的控制是通过按键旋钮控制这一特点,所以出现当人们在熟睡的时候,忘记关闭风扇的现象,温度降低之后风扇还在转动,导致人们因为吹风扇而感冒和电能的浪费。因此,针对上述的问题,设计一款以温度为控制信号的智能风扇,该风扇具有室内温度和挡位显示、温度可调和自动开启功能。

1 硬件系统设计

■1.1 硬件系统结构及其功能

硬件系统由6 部分组成,它们分别是单片机及其最小系统部分、电源部分、温度采集部分、按键输入部分、数据显示部分和电机部分。系统总体框图如图1所示。

图1 系统总体框图

(1)单片机及其最小系统部分

本次设计使用的单片机为STC89C52R 单片机作为核心控制部件,通过其数据处理和IO口输入输出功能来实现智能风扇的控制。单片机及其最小系统是保证单片机能够正常工作的系统组成,它们分别是单片机供电电源、单片机、时钟及其复位电路和程序下载口。

(2)电源部分

电源部分采用USB 转TTL 电路供电,给电路系统提供所需的电能。

(3)温度采集部分

温度采集部分使用的传感器是DS18B20,DS18B20 能够精确地将外界的温度进行采集,能够将采集的温度模拟信号转化为数字信号,方便单片机进行数据处理。其温度测试范围为-55℃~+125℃,测温误差为1℃。

(4)按键输入部分

按键输入部分使用的是独立按键。独立按键具有按键恢复功能,当按键按下时,按键导通,当按键松开时,按键断开。

(5)数据显示部分

数据显示部分使用的是LCD1602 液晶显示器。LCD1602 能够显示32个字符,其内部自带有字符库,能够显示英文字母、阿拉伯数字、日文假名和一遍特殊符号,通过编程可以控制其需要显示的字符和字符显示的位置。

(6)电机及其驱动部分

电机的转动是通过单片机输出的PWM 波进行控制,由于单片机的输出电流不能够直接驱动电机转动,所以采用了PNP 提供驱动电流来驱动电机转动。

■1.2 电路搭建及其工作原理

1.2.1 电路搭建

使用Proteus 软件进行电路搭建,电路原理图如图2所示。

图2 电路原理

在图2 中,晶振与电容C1、C2 给单片机提供了时钟信号,电阻R1 和电解电容C3 构成了单片机的复位电路。

在 图2 中,单 片 机 的P1.0 引 脚 与DS18B20的DQ 引脚进行连接,用于数据传输,在DS18B20的VCC 上接入5V 电压,并且在DQ 与VCC 之间接入一个大电阻作为上拉电阻使用。GVD端接地。

在图2 中,单片机的P0.1~P0.7 引脚分别与LCD1602的D0~D7 引脚进行连接,用于数据传输,在P0口和LCD1602的D口之间增加了一个排阻,因为单片机的P0口内部没有接上拉电阻,所以外部接入了排阻作为上拉电阻使用,LCD1602的RS 引脚与单片机的P2.5 引脚进行连接,用于LCD1602的寄存器选择操作,LCD1602的RW 引脚与单片机的P2.6 引脚进行连接,用于LCD1602的读写操作,LCD1602的E 引脚与单片机的P2.7 引脚进行连接,用于使能控制,LCD1602的VSS、VEE、VDD 接入一个滑动变阻器,用于调节背光使用。

在图2 中,独立按键温度设置键、温度加键和温度减键分别与单片机的P3.2、P3.3、P3.4 引脚进行连接,另一端接低电平。

在图2 中,电机通过一个限流电阻和NPN 管与单片机的P3.7 引脚进行连接,通过P3.7端口控制电机工作状态,由于单片机的输出电流不能够直接驱动电机进行工作,所以外接了一个NPN 管作为驱动管使用。

1.2.2 工作原理

使用独立按键进行键值输入,设定自己所需的温度阈值,可以通过LCD1602 看到当前自己设置的温度阈值。DS18B20 会对周围温度进行采集,并将采集的温度通过串口传递给单片机,单片机在接收到DS18B20 采集的温度之后,将接受到的温度值进行处理之后与温度阈值进行比较,控制电机的工作状态,选择合适的挡位进行转动,并且控制LCD1602 显示器显示当前的温度和挡位。

2 软件系统设计

■2.1 温度采集程序设计

2.1.1 初始化时序

初始化目的是为了让单片机检测总线上的DS18B20是否能够正常通信,为通信做准备。开始时,单片机将总线的电平拉低,持续时间为480μs,接着单片机释放总线,由于上拉电阻的存在,会将总线电平拉高,持续时间是50~60μs,接着单片机检测总线是否被DS18B20 拉低,持续时间60~240μs,初始化时序图见图3所示。

图3 初始化时序图

2.1.2 写时序

写时序是向DS18B20 内部写入命令,写时序可分为写“0”时序和写“1”时序,不管是写“0”时序还是“1”时序,都需要维持至少60uS的时间,两次写操作之间要间隔至少1μs的时间。在进行写操作之前,单片机将总线拉低在15μs 内必须释放总线。写时序图如图4所示。

图4 写时序图

2.1.3 读时序

读时序是单片机在总线上读取DS18B20 在总线上传递的命令,分为读“0”时序和读“1”时序。这两个时序读取的时间都要维持至少60μs的时间,其中包括1μs的恢复时间,在单片机拉低总线15μs 内必须释放总线。读时序图如图5所示。

图5 读时序图

2.1.4 操作顺序

初始化——>写相应的控制指令(用写数据函数完成)——>读取DS18B20 所采集到的数据(用读数据函数完成)— —>把采集的数据转化成实际的温度。

■2.2 LCD1602 显示程序

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示LCD 此时不忙,这时才能写指令和数据,否则此指令失效。要显示字符时要先输入显示字符地址(写指令),也就是告诉模块在,哪里显示字符,然后再写入需要显示的字符(写数据),才能够正常显示字符。

当我们要写指令的时候,RS 置为低电平,RW 置为低电平,EN 置为低电平,然后将指令数据送到数据口D0~D7, 延 时tsp1, 让1602准备接收数据,这时候将EN 拉高,产生一个上升沿,这时候指令就开始写入LCD,延时一段时间,将EN 置低电平。

当我们要写数据的时候,RS 置为高电平,RW 置为低电平,EN 置为低电平,然后将指令数据送到数据口D0~D7,延时tsp1,让1602 准备接收数据,这时候将EN 拉高,产生一个上升沿,这时候数据就开始写入LCD,延时一段时间,将EN置低电平。读时序操作图如图6所示,写时序操作图如图7所示。

图6 读时序操作

图7 写时序操作图

■2.3 主程序设计

首先进行温度读取,将读取的温度通过显示器显示,然后再将读取温度与设置的温度进行比较,判断是否开启风扇。主程序流程图如图8所示。

图8 主程序流程图

3 仿真调试

根据图8 主程序流程图,使用Keil 软件进行程序编写,将写好的程序生成HEX 文件。使用Proteus 软件和Keil 软件的联合调试功能,进行电路仿真。

如图9所示,温度传感器DS18B20 采集的温度为44℃,LCD1602 上显示的温度值也为44℃,说明系统的温度采集和温度显示没有问题;通过LCD1602 显示屏我们可以清楚地看到TH的默认值为40℃,而此时的采集温度高于40℃,所以此时的挡位P 为2,设计概念符合,而TL的默认值为10℃,如图10所示,当温度低于40℃而高于或者等于10℃的时候,挡位P 为1,也符合设计的概念。接下来进行按键设置测试。

图9 TH 挡位测试图

图10 TL 挡位测试图

如图11所示,当按下设置按键时,LCD1602 显示TH设置界面,通过加减按键可以进行TH 值的设定,此时的TH 值为48℃。如图12所示,当再次按下设置按键时,会进入TL 值的设置界面,通过加减按键,可以进行TL 值的设定,此时TL 值显示为13℃。

图12 TL 设置图

如图13所示,当再次按下设置按键时,就会退出设置界面,进入显示界面,此时的TH 为48℃,TL 为13℃,与设置界面设置的值相符合。

图13 设置退出界面图

4 结束语

利用温度传感器DS18C20 和单片机的控制技术,可以实现风扇的智能化设计,其智能体现在能够随着外界的温度变化自动调节风扇的启动。随着科技的发展,家用电器的智能化将在我们生活中越来越常见,基于物联网的技术将会使得风扇更加智能。

猜你喜欢

低电平时序按键
基于Sentinel-2时序NDVI的麦冬识别研究
铁道车辆高/低电平信号智能发生器设计
基于有限状态机的按键检测程序设计
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
基于FPGA 的时序信号光纤传输系统
一种毫米波放大器时序直流电源的设计
一种多方向导光按键结构设计
15-MeV电子直线加速器的低电平系统
DPBUS时序及其设定方法
按键的多种状态检测及消抖处理方法