基于51单片机的风速测量仪设计*
*基金项目:国家自然科学基金项目(61462015)
作者简介:刘熙明(1993—),男贵州毕节人,硕士,助理工程师,主要从事自动控制、嵌入式控制、物联网、大数据方面研究。
路世扬(1991—),男,贵州毕节人,主要从事智慧矿山和智慧物联网技术方面研究。
引言
风速是农业及工业生产中重要的气象观测数据,传统的依靠人为手段去观测和采集风速的方法并不十分准确,数据采集实时性不高,尤其是在恶劣条件下,很难实现依靠人为手段去观测和获取风力数据,利用自动化技术制作自动测量风速的测量仪器不仅仅是科技进步的要求,同时也是工农业发展和生产过程中的内在需要。
风速的测量对于预测与农业生产、工业生产息息相关的天气变化至关重要。在台风、地震、海啸等发生的时候,人们无法实地观测到风速数据,只能通过自动气象站实现对风速的观测和采集,预测和规避自然灾害,尽可能降低自然灾害对人类生产活动的影响。
目前对于风速的观测手段有人工观察和自动气象站测量两类,人工观察有很多缺点和不足,例如实时性差,精度低等,而且无法克服恶劣的气候条件。自动气象站则是通过热式风速传感器、三杯式风速传感器、光耦感应三杯式传感器等传感器来实现风速测量[1]。
1 系统方案及硬件电路设计
1.1 整体系统方案
整个系统要能实时测量(0.2~30) m/s 范围内的风速,并把所测量到的风速实时显示出来。通过分析,选用了FS 系列三杯风速传感器作为风速传感器。该传感器使用24 V 直流电源供电,使用LCD1602 液晶显示器显示风速,利用微处理器进行数据处理[2-3]。整个系统由风速测量模块、单片机模块、风速显示模块、供电模块组成,整个系统的硬件框图如图1所示。
1.2 电源电路方案
系统电源电路部分需要为单片机最小系统提供+5 V 直流电源,同时需要为三杯风速传感器提供24 V直流电源,考虑到整个电路的+5 V部分需求功率较小,且整体功耗均不高的情况,直接使用市场上现有的直流+24 V/+5 V 开关电源作为供电电源,经过测试完全能够满足系统需求。
1.3 主控制器设计方案
本系统需要处理的数据不多,运算程度不复杂,使用STM32 系列32 位微控制器会造成资源浪费,而且STM32 方案外围电路比较复杂,需要比较精准的电源,这些都将会造成系统实用性和性价比降低,因此采用8位微控制器STC89C51 单片机作为主控制器即可[4]。
单片机最小系统主要由主芯片、时钟发生电路,复位电路组成,时钟发生电路主要为整个单片机的运行提供精准的时钟信号,使单片机的程序运行不会出现混乱。
1.4 风速测量方案设计
风速测量模块主要实现对风力数据的采样和输出。三杯风速测量传感器是一种用于测量风速的传感器,通过查阅数据手册可知,该传感器在有风的时候吹动风杯带动转轴转动,其传感器内集成的电路可把风速转换成为0~5 V 的模拟信号输出,其模拟电压单片机无法直接处理,因此需要在传感器的信号输出和单片机输入之间接入ADC 转换电路,把传感器输出的模拟信号转换为数字信号,方便单片机处理。从表1 可以看到不同的风速对应的风级和强度[5-7]。
ADC 转换电路选用ADC0832 作为转换芯片,无需外围电路,结构简单。风速变换装置的风速测量最小值Vmin=0.2 m/s,测量最大值Vmax=30 m/s,而其模拟量输出最小值Umin=0 V,Umax=5 V。
因此风速v 和电压U 之间具有以下对应关系:
由此可换算出v 和U 之间的函数关系为:
通过该式(1)、(2)即可换算出风速大小。但是由于传感器本身需要至少在风速为0.2 m/s 的时候才能开始工作,因此上式所计算出的实际值应该加上0.2 m/s,最终v 和U的关系见式(3)。
风速测量模块接口电路如图3 所示,三杯风速测量传感器采用+24 V 直流供电,另外一根为数据线,输出0~+5 V 的模拟量信号,输出的信号通过ADC0832模数转换电路把风速传感器输出的模拟量变换为数字量,送到单片机进行显示,ADC0832 和单片机之间则使用SPI 总线进行通信传输风速数据。
1.5 显示电路方案设计
显示电路在本设计中主要用于显示风速和风力等级,所需显示的数据格式如下:SPEED:XX.XXm/s,wind scale:x。例如,SPEED: 23.5 m/s,wind scale:9,表示当前风速是23.5 m/s,风力等级为9 级。
利用LCD1602 显示风速,LCD1602 是一种能够同时显示16 个×2 行字符的液晶显示器,能显示的数据格式有:数字,字母,ASCII 字符等等。该液晶通过三位控制总线和8 位并行数据总线进行控制显示。
如图4 所示,液晶显示电路用LCD1602 作为显示器件,具有电路接口简单的特点,图4 中的液晶接口分为电源接口、读写控制接口、读写数据接口,八位并行数据总线和单片机的P0 口相连接,而读写控制线和单片机的P2 口连接。滑动变阻器的作用是调节液晶对比度,便于优化显示效果。
2 软件程序设计
整个系统由单片机控制ADC0832 将风速传感器输出的模拟量变为数字量,然后把数字量换算出相应的数值并发送到LCD1602 上显示出来。因此整个系统的软件程序分为系统初始化子程序模块、ADC 转换子程序模块、液晶显示控制模块,整个系统上电之后,单片机先调用初始化函数,完成对液晶屏和ADC0832 的硬件初始化,让液晶显示器显示出相应数据,初始化完毕后,控制ADC0832 完成ADC 转换并计算出速度,并对风速进行分级,传送数据到LCD1602 显示出来,主程序流程见图5。
3 系统调试
系统组装完毕后,需要对软硬件的各项功能进行调试。先进行硬件调试,硬件调试完毕后再进行软件调试。
3.1 硬件测试
首先分别对各电路模块做功能性验证,第一步是进行单片机最小系统的功能调试,硬件焊接完成之后,通过下载一个LCD1602 的初始化显示程序到单片机中观察液晶显示器是否正常显示字符。烧录程序后能够正常显示字符,说明单片机最小系统及液晶显示模块能够正常运行。随后测量三杯风速传感器的信号输出,通过测试,传感器能正常输出0~+5 V 模拟信号。之后测试ADC0832 的功能,ADC0832 功能测试是利用一个电位器产生模拟量输入,把ADC0832 的驱动程序烧录进去,能够正常读取电压值,再将传感器输出信号作为ADC083 的输入,综合测试能够采集风速传感器的电压值并通过液晶显示出来。因此整个硬件测试基本通过,图6 是整个硬件系统组装完成的电路实物图。
3.2软件调试
因为系统不涉及到精确的时序控制,且无需实现比较复杂的数学运算,所以使用C 语言编写程序,开发环境采用Keil。在开发环境中建立好工程之后,编写代码,把编译通过的代码通过USB下载线下载到单片机中即可运行。在整个系统的各功能模块子程序测试通过之后,即可把所有功能模块组装在一起,然后根据系统流程图和设计思想,把整个系统的软件按照流程图和算法指引,逐步调用子程序,完成系统功能。
4 测试与总结
4.1 实验结果
为了验证所设计风速采集记录仪测量风速的准确性,在相同环境下利用标准风速测量仪和所设计的风速采集仪进行对照实验,因实际条件限制,无法产生14 m/s 以上的大风,实验结果见表2。
4.2 结果讨论
从表2 的实验结果中可以看出,所设计的风速测量仪风速测量结果和标准仪器测量结果一致性好,最大误差为0.71%,具有较高精度,能够满足农业、工业、生产及生活所需,具有较强实用价值。
参考文献:
[1] 张浩然,肖东岳.基于单片机的风能密度测试仪设计[J].电子制作,2018(15):23-24+50.
[2] 吴启强.超声波三维风速测量系统的设计与实现[D].南京:东南大学,2019.
[3] 高培严,田明,陈银峰,等.电磁式风速仪的设计制作[J].大学物理实验,2018,31(4):73-76.
[4] 陈为星,刘为国.基于STM32的风速风向测量系统设计[J].传感器与微系统,2018,37(10):85-88.
[5] 王凯,蒋曙光,吴征艳,等.煤矿井下便携式智能风速测量仪的设计[J].矿山机械,2009,37(14):31-33.
[6] 崔文婷,.基于STM32的风机测速仪的设计[J].电子测量技术,2014(8):107-111.
[7] YIN X,LI X,LV J,et al.Design of Hot-bulb Probe Low-Pressure Wind Speed Calibration System[J]. Journal of Physics: Conference Series, 2019(2):022098
(本文来源于《电子产品世界》杂志2021年4月期)
评论