Arduino大师练成手册 -- PCF8574T I2C控制LCD1602
Arduino 通过 PCF8574T 控制 LCD1602
硬件连接
- VCC:连接到 Arduino 的 5V 引脚。
- GND:连接到 Arduino 的 GND 引脚。
- SCL:连接到 Arduino 的 SCL 引脚(通常是 A5)。
- SDA:连接到 Arduino 的 SDA 引脚(通常是 A4)。
安装必要的库
- 在 Arduino IDE 中,安装
LiquidCrystal_I2C
库。你可以在库管理器中搜索并安装该库。
代码示例
以下是一个简单的示例代码,用于通过 I2C 接口控制 LCD1602 显示屏:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// 设置 LCD 地址为 0x27,显示屏为 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init(); // 初始化 LCD
lcd.backlight(); // 打开背光
lcd.setCursor(0, 0); // 设置光标到第一行第一列
lcd.print("Hello, World!"); // 显示文本
}
void loop() {
// 在这里可以添加其他代码
}
连接示意图
VCC -> Arduino 5V
GND -> Arduino GND
SCL -> Arduino A5
SDA -> Arduino A4
重要提示
I2C 地址:确保你的 LCD 模块的 I2C 地址是 0x27。如果不是,请根据实际地址进行修改。
库安装:确保安装了 LiquidCrystal_I2C 库。如果没有安装,可以在 Arduino IDE 的库管理器中搜索并安装。
要扫描Arduino 上的I2C设备,可以使用下面的代码:
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
while (!Serial); // 等待串口连接
Serial.println("\nI2C 设备扫描中...");
}
void loop() {
byte error, address;
int nDevices;
Serial.println("扫描中...");
nDevices = 0;
for (address = 1; address < 127; address++) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C 设备找到地址 0x");
if (address < 16) Serial.print("0");
Serial.print(address, HEX);
Serial.println(" !");
nDevices++;
} else if (error == 4) {
Serial.print("未知错误地址 0x");
if (address < 16) Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0) {
Serial.println("没有找到 I2C 设备\n");
} else {
Serial.println("扫描完成\n");
}
delay(5000); // 每 5 秒扫描一次
}