第20/31课:使用LCD1602与Arduino显示文本 | Robojax
简介
LCD1602是Arduino项目中最流行的字母数字显示屏之一,当它与I2C转接板配合使用时,操作变得非常简单。在本教程中,您将学习如何显示文本、数字和自定义字符,以及如何让文本在屏幕上滚动。我们还将向您展示如何将LCD与其他传感器结合,创建实用的监控工具。本指南是一个更广泛的Arduino课程的一部分,旨在帮助您为家庭、学校或工作坊制作有用的设备。
以下是一些利用这些知识可以构建的实用想法:
- 用于温室或爬行动物饲养箱的温湿度监测器。
- 用于检查项目中电池电量的简易电压表。
- 用于停车辅助或显示垃圾桶满溢程度的距离传感器。
硬件概述
LCD1602是一款16字符×2行的显示屏。背面的模块是I2C(或I²C)适配器,它将标准并行连接所需的线数减少到仅四根:地线、VCC、SDA和SCL。这使得接线更加简单,并释放了Arduino上的许多数字引脚。
该显示屏具有背光功能,可通过软件开启或关闭。I2C模块上还有一个小电位器用于调节对比度。如果您给显示屏通电后看不到任何内容,只需旋转该螺丝,直到文本可见(视频中02:47处)。
该显示屏有不同的版本,例如LCD2004具有20个字符和4行。I2C地址也可以通过焊接模块上的A0、A1和A2跳线来更改(视频中03:51处)。默认地址通常是0x27,但也可能有所不同,因此最好运行I2C扫描程序来找到您特定模块的正确地址。
硬件组件
要跟随本视频中的主要演示,您需要以下组件:
- Arduino Uno(或任何兼容板)
- 带I2C模块的LCD1602
- 面包板和跳线
对于后续部分,您还需要DHT11传感器、电位器或超声波传感器,具体取决于您想构建哪个项目。
接线指南
连接LCD非常简单。接线图清晰地显示了连接方式。
将I2C模块上的引脚连接到您的Arduino,如下所示:
- GND连接到Arduino的GND
- VCC连接到Arduino的5V
- SDA连接到Arduino的A4
- SCL连接到Arduino的A5
如果您的Arduino板有专用的SDA和SCL引脚,您也可以连接到这些引脚(视频中05:47处)。
安装库
该模块需要“Arduino Liquid Crystal I2C”库。您可以从视频描述中提供的链接或Robojax网站下载。下载后,在Arduino IDE中通过Sketch > Include Library > Add .ZIP Library安装它,并选择下载的文件(视频中06:41处)。
代码说明
由于没有提供代码片段,我们将解释视频中使用的代码的一般结构。
代码首先包含必要的库:用于I2C通信的Wire.h和用于显示屏的LiquidCrystal_I2C.h库。关键部分是创建LCD对象。您需要设置正确的I2C地址和显示屏的尺寸:
// 将LCD地址设置为0x27,适用于16字符2行显示屏
LiquidCrystal_I2C lcd(0x27, 16, 2);
如果您的显示屏没有显示任何内容,您可能需要将0x27更改为0x3F或I2C扫描程序找到的其他地址。16和2代表显示屏的列数和行数。
在setup()函数中,您初始化LCD并打开背光:
void setup() {
lcd.init();
lcd.backlight();
}
要打印文本,您使用lcd.setCursor(column, row)函数定位光标,然后使用lcd.print()显示数据。例如,要在第二行打印,您可以使用lcd.setCursor(0, 1)。视频还解释了如何通过使用lcd.write(223)打印特殊字符,如度符号(视频中31:42处)。
演示
视频演示了LCD的几个关键功能。首先,它展示了基本的“Hello World”文本打印以及如何使用lcd.scrollDisplayLeft()函数让文本在屏幕上移动。随后,它将LCD与DHT11传感器结合显示温度和湿度,与电位器结合显示电压,以及与超声波传感器结合显示距离。
对于温度显示,代码读取传感器并打印数值。要显示不带小数的整数,您可以将浮点值转换为整数,如视频所示(视频中32:21处)。
对于电压表,代码读取电位器的模拟值,将其缩放到0-5V的电压范围,并显示在屏幕上(视频中34:31处)。
最终演示将LCD与超声波传感器结合,以厘米为单位显示测量距离(视频中37:55处)。
本视频中的相关项目
本视频还包含其他项目教程。您可以在此处找到它们:
章节
- [00:00] LCD1602简介及课程概述
- [01:30] LCD1602和I2C模块的硬件概述
- [02:47] 调整显示对比度和背光
- [03:14] 引脚连接和I2C地址选择
- [05:28] LCD接线图
- [06:16] 安装所需库
- [07:24] 打印文本的基本代码
- [11:10] 闪烁光标示例
- [13:46] 自定义字符和打印特殊符号
- [18:51] 串行显示示例
- [23:16] 在LCD上滚动文本
- [36:51] 将LCD与超声波传感器结合
/*
Lesson 20/31: Displaying text on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
*/
/*
This is code for LCD1602 Display with I2C module
* watch the video for this code https://youtu.be/q9YC_GVHy5A
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purpose only.
* This library is based on work done by DFROBOT (www.dfrobot.com).
*/
/*
* This code has been modefied from the Arduino library
* Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
* in Ajax, Ontario, Canada
* for Robojax.com
*
* This is code for LCD1602 Display with I2C module
* which can display text on the screen.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
//lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
lcd.clear();
lcd.setCursor (0,0);
lcd.print("SunFounder ");
lcd.setCursor (0,1);
lcd.write(244);
delay(500);
//end of loopcode Robojax code for LCD with I2C
}
Common Course Links
Common Course Files
|||您可能需要的东西
-
亚马逊SunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
亚马逊
-
亚马逊
-
亚马逊
-
亚马逊从亚马逊购买LCD1602-I2Camzn.to
-
易趣在eBay上购买LCD1602-I2Cebay.us
-
全球速卖通在AliExpress上购买10个LCD1602-I2Cs.click.aliexpress.com
资源与参考
-
文档SunFounder 3合1物联网/智能车/学习套件的文档docs.sunfounder.com
-
外部RoboJax 的 LCD 库 (ZIP)robojax.com
-
外部购买SunFounder的3合1智能汽车学习套件sunfounder.com
文件📁
Arduino 库(zip 格式)
-
SunFounder 的 3 合 1 智能汽车学习套件源代码
3in1-kit-main-v2.zip12.80 MB