#include <LiquidCrystal.h>
// 初始化LCD引脚连接
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
// 存储两行内容的缓冲区
String line1 = " Welcome 1624";
String line2 = "I Love Mega2560";
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 初始化LCD
lcd.begin(16, 2);
updateDisplay();
Serial.println("LCD Display Controller");
Serial.println("Send commands in format:");
Serial.println("L1:Your Text Here - to set line 1");
Serial.println("L2:Your Text Here - to set line 2");
}
void loop() {
// 检查是否有串口数据可用
if (Serial.available()) {
String input = Serial.readStringUntil('\n');
input.trim(); // 去除前后空白字符
// 处理第一行命令
if (input.startsWith("L1:")) {
line1 = input.substring(3); // 提取冒号后的内容
line1 = line1.substring(0, min(16, line1.length())); // 限制长度
updateDisplay();
Serial.println("Line 1 updated: " + line1);
}
// 处理第二行命令
else if (input.startsWith("L2:")) {
line2 = input.substring(3); // 提取冒号后的内容
line2 = line2.substring(0, min(16, line2.length())); // 限制长度
updateDisplay();
Serial.println("Line 2 updated: " + line2);
}
// 显示帮助信息
else if (input == "help") {
Serial.println("Available commands:");
Serial.println("L1:text - Set line 1 text");
Serial.println("L2:text - Set line 2 text");
Serial.println("help - Show this help");
}
}
}
// 更新LCD显示内容
void updateDisplay() {
lcd.clear();
lcd.print(line1);
lcd.setCursor(0, 1);
lcd.print(line2);
}