文章目录
- 前言
- 一、安装驱动库
- 二、LCD1602的各种操作
- 2.1 点亮LCD1602
- 2.2 LCD1602其他函数
- 清除显示屏上的所有字符
- 将光标位置移动到显示屏的起始位置
- 关闭显示屏,不会显示任何字符
- 打开显示屏,开始显示字符
- 关闭光标闪烁
- 打开光标闪烁,使光标呈现闪烁效果
- 隐藏光标
- 显示光标
- 将显示屏内容向左滚动
- 将显示屏内容向右滚动
- 设置打印方向为从左到右
- 设置打印方向为从右到左
- 设置光标移动方向为从左到右
- 设置光标移动方向为从右到左
- 设置光标右移一位
- 设置光标左移一位
- 关闭背光
- 打开背光
- 使显示屏内容滚动
- 停止显示屏内容滚动
- 自定义字符生成
- 设置光标的位置
- 控制背光的具体亮度
- 总结
前言
欢迎来到史上最全面的Arduino ESP32教程!本教程将重点介绍如何使用I2C接口连接LCD1602液晶显示屏,并通过Arduino ESP32控制显示内容。通过学习本教程,你将学会如何使用I2C通信协议和LCD1602库,以及如何利用ESP32开发板与LCD1602一起创建令人印象深刻的显示效果。
一、安装驱动库
我们只需要进行下面这些操作即可安装好我们的驱动库
二、LCD1602的各种操作
2.1 点亮LCD1602
我们所需要点亮的是I2C接口的LCD1602,所以我们需要使用arduino的I2C初始化操作
我们通过他的源码可得到他使用的是我们arduino里面的Wire
I2C对象,所以我们在点亮LCD之前需要先初始化Wire
对象
- 初始化
Wire
对象
我们把他的数据线和时钟线设置成20和19,时钟频率为400kHz
Wire.begin(20,19,4000000);
- 构造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
- 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像素。
- 打开背光
我们可以使用下面这个函数打开背光:
void backlight();
总的代码如下:
#include <Wire.h> // I2C 库
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C 库LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C 地址为 0x27,行数为 2,列数为 16void setup() {Wire.begin(20,19,4000000);lcd.begin(16, 2); // 初始化 LCDlcd.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的应用,为你的电子制作项目带来更丰富的功能和展示效果。祝你在学习和创作过程中取得丰硕的成果!