【史上最全面arduino esp32教程】I2C接口LCD1602的使用

举报
人才程序员 发表于 2024/03/31 16:46:22 2024/03/31
【摘要】 @TOC 前言欢迎来到史上最全面的Arduino ESP32教程!本教程将重点介绍如何使用I2C接口连接LCD1602液晶显示屏,并通过Arduino ESP32控制显示内容。通过学习本教程,你将学会如何使用I2C通信协议和LCD1602库,以及如何利用ESP32开发板与LCD1602一起创建令人印象深刻的显示效果。 一、安装驱动库我们只需要进行下面这些操作即可安装好我们的驱动库 二、LCD...

@TOC


前言

欢迎来到史上最全面的Arduino ESP32教程!本教程将重点介绍如何使用I2C接口连接LCD1602液晶显示屏,并通过Arduino ESP32控制显示内容。通过学习本教程,你将学会如何使用I2C通信协议和LCD1602库,以及如何利用ESP32开发板与LCD1602一起创建令人印象深刻的显示效果。


一、安装驱动库

我们只需要进行下面这些操作即可安装好我们的驱动库
在这里插入图片描述

二、LCD1602的各种操作

2.1 点亮LCD1602

我们所需要点亮的是I2C接口的LCD1602,所以我们需要使用arduino的I2C初始化操作
我们通过他的源码可得到他使用的是我们arduino里面的WireI2C对象,所以我们在点亮LCD之前需要先初始化Wire对象
在这里插入图片描述

  1. 初始化Wire对象
    我们把他的数据线和时钟线设置成20和19,时钟频率为400kHz
Wire.begin(20,19,4000000);
  1. 构造LCD1602对象:
    LCD1602的构造函数定义如下:
LiquidCrystal_I2C(uint8_t lcd_Addr,uint8_t lcd_cols,uint8_t lcd_rows);

参数1为LCD I2C设备的地址,参数2为LCD的列数,参数3为LCD的行数

我们需要使用的是LCD1602,我们可以像下面这样去初始化一个对象

LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C 地址为 0x27,行数为 2,列数为 16
  1. LCD1602 begin
    我们可以使用下面这个函数让LCD1602开始工作:
void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );

cols:指定LCD的列数,即显示屏每行可以显示的字符数。取值可以是1到16,表示1到16列。
rows:指定LCD的行数,即显示屏的行数。取值可以是1到2,表示1到2行。
charsize(可选参数):指定字符的大小。取值可以是LCD_5x8DOTS(默认值)或LCD_5x10DOTS,分别表示字符尺寸为5x8像素或5x10像素。

  1. 打开背光
    我们可以使用下面这个函数打开背光:
void backlight();

总的代码如下:

#include <Wire.h> // I2C 库
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C 库

LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C 地址为 0x27,行数为 2,列数为 16

void setup() {
  Wire.begin(20,19,4000000);

  lcd.begin(16, 2); // 初始化 LCD
  lcd.backlight(); // 打开背光
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(10); // this speeds up the simulation
}

他的效果如下:
在这里插入图片描述

2.2 LCD1602其他函数

注意!!!!!!!注意!!!!!!!注意!!!!!!!注意!!!!!!!下面这个非常重要!!!
LiquidCrystal_I2C这个类继承于Print类,所有他可以使用的函数,你也可以使用,他打印出去的东西会显示到LCD1602上面的

清除显示屏上的所有字符

void clear()

作用:清除显示屏上的所有字符。
参数:无。
返回值:无。

将光标位置移动到显示屏的起始位置

void home()

作用:将光标位置移动到显示屏的起始位置(左上角位置)。
参数:无。
返回值:无。

关闭显示屏,不会显示任何字符

void noDisplay()

作用:关闭显示屏,不会显示任何字符。
参数:无。
返回值:无。

打开显示屏,开始显示字符

void display()

作用:打开显示屏,开始显示字符。
参数:无。
返回值:无。

关闭光标闪烁

void noBlink()

作用:关闭光标闪烁。
参数:无。
返回值:无。

打开光标闪烁,使光标呈现闪烁效果

void blink()

作用:打开光标闪烁,使光标呈现闪烁效果。
参数:无。
返回值:无。

隐藏光标

void noCursor()

作用:隐藏光标。
参数:无。
返回值:无。

显示光标

void cursor()

作用:显示光标。
参数:无。
返回值:无。

将显示屏内容向左滚动

void scrollDisplayLeft()

作用:将显示屏内容向左滚动。
参数:无。
返回值:无。

将显示屏内容向右滚动

void scrollDisplayRight()

作用:将显示屏内容向右滚动。
参数:无。
返回值:无。

设置打印方向为从左到右

void printLeft()

作用:设置打印方向为从左到右。
参数:无。
返回值:无。

设置打印方向为从右到左

void printRight()

作用:设置打印方向为从右到左。
参数:无。
返回值:无。

设置光标移动方向为从左到右

void leftToRight()

作用:设置光标移动方向为从左到右。
参数:无。
返回值:无。

设置光标移动方向为从右到左

void rightToLeft()

作用:设置光标移动方向为从右到左。
参数:无。
返回值:无。

设置光标右移一位

void shiftIncrement()

作用:设置光标右移一位。
参数:无。
返回值:无。

设置光标左移一位

void shiftDecrement()

作用:设置光标左移一位。
参数:无。
返回值:无。

关闭背光

void noBacklight()

作用:关闭背光。
参数:无。
返回值:无。

打开背光

void backlight()

作用:打开背光。
参数:无。
返回值:无。

使显示屏内容滚动

void autoscroll()

作用:使显示屏内容滚动。
参数:无。
返回值:无。

停止显示屏内容滚动

void noAutoscroll()

作用:停止显示屏内容滚动。
参数:无。
返回值:无。

自定义字符生成

void createChar(uint8_t, uint8_t[])

作用:自定义字符生成,可以在显示屏上显示自定义的图标或特殊字符。
参数:
uint8_t:自定义字符的索引号(0-7),可以创建8个自定义字符。
uint8_t[]:自定义字符的像素数据,包含8个字节的数组表示字符的图案。
返回值:无。

设置光标的位置

void setCursor(uint8_t, uint8_t)

作用:设置光标的位置。
参数:
uint8_t:列号(从0开始计数),指定光标所在的列。
uint8_t:行号(从0开始计数),指定光标所在的行。
返回值:无。

控制背光的具体亮度

void setBacklight(uint8_t new_val);
我们可以设置一个0~255的数值进去,进而设置背光的亮度


总结

本教程通过详细的介绍和示例代码,帮助你了解了如何使用I2C接口连接LCD1602液晶显示屏,并实现与Arduino ESP32的通信。我们首先简要介绍了LCD1602和I2C通信协议的基本原理,然后详细讲解了如何在ESP32上配置I2C通信,并使用LCD1602库控制液晶显示屏。

在本教程的示例代码中,我们展示了几个常见的操作,包括初始化LCD1602、显示文本、清除屏幕内容和移动光标等。通过这些示例,你可以理解LCD1602与ESP32的交互方式,并且可以根据自己的需求进行更复杂的操作和扩展。

通过学习本教程,你不仅会掌握使用I2C接口连接LCD1602的方法,还会了解如何充分利用ESP32的功能来实现更多交互效果,例如显示数据、传感器信息等。此外,你还能够将本教程中的知识应用到其他项目中,为你的电子制作增添更多创意和趣味。

希望你通过本教程的学习,能够更好地掌握Arduino ESP32和LCD1602的应用,为你的电子制作项目带来更丰富的功能和展示效果。祝你在学习和创作过程中取得丰硕的成果!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。