Arduino液晶显示温度湿度计

网友投稿 2019-10-20 14:37

        本文在上一次的基础上为简易温湿度计加上显示装置及高温报警装置,使其脱离PC上位机,可以独立工作。

https://cdn.china-scratch.com/timg/191022/143H13928-0.jpg

        这里首先贴一下上一次的电路接线图,简单的说明一下,上一次的简易温湿度计采用DHT11作为温湿度传感器对环境中的温湿度进行采集,然后利用Arduino IDE的串口监视窗口进行显示。

        这里我们使用液晶显示器替代串口来时先数据参数的显示。这样就可以在不需要串口监视助手的情况下直接通过显示屏幕了解温湿度数据的实时状态。

        因为要显示的内容相对比较简单,所以这里我们选择LCD1602液晶显示器。LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。LCD1602可以显示两行,每行16个共计32个ASCII码字符。对于一些简单的显示应用场合是完全能够胜任的。

https://cdn.china-scratch.com/timg/191022/143H11b0-1.jpg

        LCD1602的端口引脚说明如下表。其采用直流5V供电,在驱动时可以选择8位并口或4位并口,有的控制芯片还同时支持I2C串口驱动的方式。本文中采用4位并口的方式,4位并口相对于8位并口可以节省4个数据线。

https://cdn.china-scratch.com/timg/191022/143H13004-2.jpg

        在上一次实验的基础上对电路连线图进行修改。LCD1602的3脚V0与电位器的抽头相连接,电位器的两端分别与电源正和电源负相连,通过调节电位器可以调节液晶显示器的显示对比度。本次设计采用4位并口的驱动方式,在进行电路连接的时候,用到LCD1602的D4-D7数据端口和RS、EN控制端,分别将这些端口与Arduino UNO开发板的数字IO先连接后就可以了。

        本文所使用的电路中LCD1602的引脚与Arduino UNO的引脚对应关系为:D4 - pin6,D5 - pin5,D6 - pin4,D7 - pin3,RS-pin12,EN-pin11,RW-GND。

        LCD1602的背光供电时独立供电的,只需将15脚与电源正相连、16脚与电源负相连就可以点亮液晶显示器的背光。

https://cdn.china-scratch.com/timg/191022/143H1G48-3.jpg

        完成硬件电路连接后,接下来可以进行程序的编写。编写程序之前同样需要添加相应的库。进入库管理界面然后在搜索栏中输入LCD,选择第一个库进行安装即可。

https://cdn.china-scratch.com/timg/191022/143H24057-4.jpg

        安装完成以后进入示例界面选择“HelloWorld”示例进行库使用方法的学习。

https://cdn.china-scratch.com/timg/191022/143H211U-5.jpg

        打开示例程序后可以看到如下程序。程序的开始部分对LCD的硬件接口连接进行配置;然后声明了一个LCD对象;最后程序进行显示输出。

https://cdn.china-scratch.com/timg/191022/143H2I19-6.jpg

        这里我们将硬件接口信息部分修改为与实际电路相匹配。然后对程序进行上传。上传完成以后可以看到液晶显示器上第一行显示“Hello,world!”,第二行显示计数。看到这些内容,代表硬件电路的连接没有问题,可以进行下一步的程序编写。

        进行编程,在上一次温湿度采集的程序基础上继续进行就可以。首先声明一个LCD对象,并对他的硬件端口进行配置。在初始化中对其进行初始化。初始化完成后在主循环中,每当对温湿度数据采集完成以后,在显示屏上指定的位置显示出温湿度数据,刷新完显示数据后对温度数值进行判断,当温度大于30度时,点亮LED进行报警,当温度小于29度时熄灭LED解除报警,这样做的主要目的是防止温度在30度左右跳动,造成LED报警指示灯的闪烁。程序必须完成后进行编译上传。

https://cdn.china-scratch.com/timg/191022/143H34635-7.jpg

https://cdn.china-scratch.com/timg/191022/143H33021-8.jpg

https://cdn.china-scratch.com/timg/191022/143H4AE-9.jpg

https://cdn.china-scratch.com/timg/191022/143H43M7-10.jpg

        实物连线效果图及显示效果图如上图所示。最终效果为,LCD1602上对DHT11采集到的温湿度数据进行实时显示,当温度数值大于30度时LED指示灯亮起进行报警提示,当温度小于29度时LED熄灭解除报警。最后上一个效果视频。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com