LCD(Liquid Crystal Display) CN
阿杜伊诺的LCD模块用于显示字符或数字,主要使用16x2或20x4尺寸的LCD显示屏。本文档介绍支持I2C通信的LCD。使用I2C接口而不是传统的并行接口,可以减少引脚数量并简化布线。通过轻松连接到阿杜伊诺板,可以在各种项目中以视觉方式呈现信息。
主要规格
- 显示尺寸 : 16x2、20x4最为常见。
- 电源供应范围 : 5V(直接由阿杜伊诺板供电)
- 接口 : I2C(SDA、SCL)
- 字符集 : 支持ASCII字符集
- I2C地址 : 默认为0x27或0x3F(取决于模块)
功能
- 字符显示 : 可以显示字母、数字和特殊字符。对于图形或图像,限制较大,图形LCD或OLED更为合适。
- 背光控制 : 可以开启或关闭背光,并调整亮度。
- 光标控制 : 使用setCursor()函数移动或隐藏光标。
- 滚动功能 : 可以左右滚动文本。
- 背面有可变电阻,可以调整字符亮度。
应用示例
Library
- Wire(基本库,无需安装)
- LiquidCrystal I2C:请通过库安装方法链接查看安装方法。
连接
无论尺寸(16x2、20x4)如何,连接方式都相同。
| I2C LCD模块引脚 | 阿杜伊诺UNO引脚 |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
1. 确认模块地址
1-1. 代码
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknow error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000);
}
1-2. 执行结果
2. 在LCD上显示文本
2-2. 代码
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
//使用前初始化lcd。
lcd.init();
//启动lcd的背光。
lcd.backlight();
//将lcd的位置设置为(0,0)。(以左上角为基准)
lcd.setCursor(0, 0);
//编写要输出的文字。
lcd.print("Gongzipsa");
//将lcd的位置设置为(0,1)。
lcd.setCursor(0, 1);
//输出val值。
int val = 1004;
lcd.print(val);
}
void loop(){}





