| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 【Arduino实验12 1602 LCD显示】 -> 正文阅读 |
|
[嵌入式]【Arduino实验12 1602 LCD显示】 |
一、实验目的 ????????(1)熟悉1602LCD液晶显示模块的功能 ????????(2)熟悉DHT1温湿度传感器的功能 ????????(3)掌握DHT11、liquidCrystal库函数功能与用法; ????????(4)掌握温湿度传感器、LCD液晶显示控制程序编写; ????????(5)编程实现一个数字显温湿度计的功能 二、实验设备与环境 ????????Arduino UNO套件、Arduino IDE、计算机、DHT1温湿度传感器、1602LCD显示器、电阻、电位器等 三、实验重点 ????????(1)数字显示温湿度计实验电路连接;(2)温湿度传感器、LCD液晶显示控制程序编写;(3)数字显示温度、湿度计编程 四、实验难点 ????????(1)LCD显示控制原理;(2)数字温度、湿度计显示编程 五、实验内容 ????????5.1实验任务 ????????任务描述:DHT11温湿度传感器测试;编程控制1602 LCD显示;编程实现数字显示温湿度计???????? ????????5.2实验原理 ????????1.温湿度传感器 ????????DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连。DHT11温湿度传感器多用于冷暖空调、气象站、除湿器、数据记录器、测试及检测设备等。 ????????产品为4针单排引脚封装。 ????????DHT11温湿度传感器参数: ????????测量范围:20-90%RH;0-50°C ????????测量精度:±2°C;±5RH ????????针脚:4针直排,1-VCC(3-5V);2-DATA,串行数据;3-NC,悬空脚;4-GND,接地 ????????串行接口通信: ????????DATA 用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右。操作流程如下: ?????????数据分小数部分和整数部分, 一次完整的数据传输为40bit,高位先出。 ????????数据传送正确时,数据=“8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和”。???????? ????????2.1602LCD显示器 ????????液晶显示器在控制显示面板中应用广泛,称为Liquid CrystalDisplay,简称LCD,是各种便携式电子产品的理想显示器,1602LCD叫1602字符型液晶,是一种专门用来显示字母、数字、符号等的点阵型液晶模块,字符型液晶显示模块是一种专门用于显示字母、数字和符号等的点阵式LCD,常用16×1,16×2,20×2和40×2等的模块。一般的LCD1602字符型液晶显示器的内部控制器大部分为HD44780,能够显示英文字母、阿拉伯数字、日文片假名和一般性符号,多用于电子仪表、数字仪表、冰箱、空调等装置。 ????????1602 LCD显示屏引脚定义:? ????????3.数字温湿度显示电路 ????????注:调节电位器,可以调节LCD背景光亮度。 ????????4.库函数 ????????(1)DHT1库函数 ????????dht11库函数: ????????DHT11数字温湿度传感器是一款含有已校准数字信号输出的复合传感器,要通过DHT11类库函数进行温湿度检测与信息编码。 ????????dht11类只有一个成员函数:read() ????????功能:读取DHT11传感器数据,并将温度值、湿度值分别存入temperature、humidity两个成员变量中 ????????语法:DHT11.read(pin) ????????参数:DHT11,一个dht11类的对象;pin,Arduino连接传感器的引脚编号 ????????返回值:int类型,为0、-1或2 ????????0对应宏DHTLIB_OK,收到数据,且校验正确; ????????-1对应宏DHTLIB_ERROR_CHECKSUM,表示接收到数据但校验错误; ????????2对应宏DHTLIB_ERROR_TIMEOUT,表示通信超时 ????????成员变量: ????????dht11.humidity–存储检测到的湿度值 ????????dht11.temperature–存储检测到的温度值? ??????? ????????(2)LiquidCrystal库函数 ????????#include <LiquidCrystal.h> // 包含库的头文件 ????????LiquidCrystal LCD(rs,enable,d4,d5,d6,d7)//声明一个LiquidCrystal类对象示例LCD,4位数字接法 ????????LiquidCrystalLCD(rs,rw,enable,d0,d1,d2,d3,d4,d5,d6,d7) //8位数据线接法 ????????引脚参数: ????????rs,连接RS的Arduino的引脚编号 ????????rw,连接R/W的Arduino的引脚编号 ????????enable,连接到E的Arduino的引脚编号 ????????d0,d1,d2,d3,d4,d5,d6,d7 数据线连接Arduino的引脚编号 ????????LiquidCrystal类实体LCD的成员函数: ????????LCD.begin(cols,rows) //设置显示的宽度和高度 ????????LCD.clear() //清屏,光标移到左上角 ????????LCD.home //光标复位到左上角 ????????LCD.setCursor(col,row) //设置光标到指定位置 ????????LCD.write(data) //输出一个字符到 ????????LCDLCD.print(data) //输出一串字符到LCD,返回输出的字符数 ????????LCD.cursor()/noCursor() //显示/隐藏光标 ????????LCD.blink/noBlink //开启/关闭光标闪烁 ????????LCD.display/noDisplay //开启/关闭LCD显示 ????????LCD.scrollDisplayLeft()/scrollDisplayRight() //向左/右滚屏显示 ????????LCD.leftToRight()/rightToLeft() // 文本输入方式从左至右/从右至左 ????????LCD.autoscroll()/noAutoscroll() // 自动滚屏/关闭自动滚屏 ????????(3)serial()–串口通信函数 ????????Serial.begin(speed) ????????// 初始化串口的波特率,常用9600、19200、57600、115200。 ????????// 波特率,每秒传输的bit数 ????????Serial.available( ) ????????// 不带参数 ????????// 返回串口缓冲区当前剩余字符的个数,用以判断串口缓冲区有无数据。 ????????// 当serial.available()>0时,判断串口收到了数据,可以读取 ????????Serial.read( ) ????????// 读取串口缓冲区1个Byte的数据,不带参数,返回int型。 ????????// 反复读取串口数据直到读完(Serial.available()=0)时止
?????????Serial.println(data,encoding ) // 与Serial.print()输出内容相同,在末尾加换行 ??????????5.3实验内容 ????????1.温湿度传感器测试 ????????步骤1:按温湿度检测电路原理图连接电路 ????????步骤2:参考示例程序输入DHT11检测程序代码
????????步骤3:运行、测试、调试程序功能 ????????2.1602LCD显示器功能测试 ????????步骤1:如电路原理图所示,将1602 LCD功能、数字引脚与Arduino UNO板I/O口连接 ????????步骤2:编写1602LCD显示测试程序:
????????步骤3:运行、测试、调试程序功能 ????????步骤4:编写1602LCD显示串口输入的数据
?????????步骤5:程序功能扩展: ????????实验任务:用LCD实现自动滚屏显示、从左向右或从右向左显示、光标任意定位与闪烁等显示功能
????????3.数字显示温湿度计 ????????实验任务:根据已给定的电路图和温度传感器、1602 LCD显示功能的测试程序,编写程序,实现一个LCD数字显示温度计。 ? ? ? ? 略。 ????????5.4实验结果?? ????????结论:用 LCD 实现自动滚屏显示、从左向右或从右向左显示 ????????反思:通过本次实验,我学到了很多知识,掌握了1602LCD 液晶显示模块的功能和DHT1温湿度传感器的功能。学会了DHT11、liquidCrystal 库函数功能与用法和掌握温湿度传感器、LCD 液晶显示控制程序编写。但还需要学习更多的知识。 ????????作品: ? ? ? ? ? ????????5.5思考题 ????????1.如何用1602LCD制作一个数字显示时钟? 注:从ArduinoIDE的库管理下载的DHT11库的时候可能会遇到编译错误的问题 错误信息类似“为某某开发板编译时出错” In file included from C:\Users\admin\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:15:0: C:\Users\admin\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory compilation terminated. exit status 1 为开发板 Arduino/Genuino Uno 编译时出错。 编译还说了:C:\Users\16285\Documents\Arduino\libraries\DHT-sensor-library-master\DHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory #include <Adafruit_Sensor.h> 意思是找不到Adafruit_Sensor.h这个头文件 解决办法:给"DHT-sensor-library-master"放一个“Adafruit_sensor.h”文件进去 安装使用的库目录参考:C:\Users\admin\Documents\Arduino\libraries\DHT_sensor_library |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:51:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |