#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "LCD_Display.h"
int num = 0;
int T_Developer = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4);
// 定义一个自定义字符(5x8 点阵的心形图案)
/*uint8_t heart[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000
};*/
void setup() {
lcd.begin(20, 4); // 初始化 LCD 显示器
//lcd.createChar(0, heart); // 将自定义字符存储到 LCD 的字符位置 0
lcd.backlight(); // 打开背光
/*lcd.setCursor(0, 0);
lcd.print("Custom Char: ");
lcd.setCursor(14, 0);
lcd.write((uint8_t)0); // 显示自定义字符
delay(1000);*/
}
/*
// LCD显示通用副程式(for 11/01)
// mode_display(显示模式), Rows(列) -, Cols(行) |, str(字串), num(整数)
void LCD_Display(char mode_display, int Rows, int Cols, String str, long num) {
// LCD文字显示,通用格式# LCD_Display('A', 0, 0, "str", NULL);
if (mode_display == 'A') {
lcd.setCursor(Rows, Cols);
lcd.print(str);
}
// LCD数字显示,通用格式# LCD_Display('B', 0, 0, "", num);
else if (mode_display == 'B') {
lcd.setCursor(Rows, Cols);
lcd.print(num);
}
// LCD进阶显示,通用格式# LCD_Display('C', 0, 0, "str", num);
else if (mode_display == 'C') {
lcd.setCursor(Rows, Cols);
lcd.print(str);
lcd.print(num);
}
// LCD单行清除,通用格式# LCD_Display('D', 0, 0, "", NULL);
else if (mode_display == 'D') {
lcd.setCursor(Rows, Cols);
for (int i = Rows; i < 20; i++)
lcd.print(" ");
}
// LCD多行清除,通用格式# LCD_Display('E', 0, 1, "", NULL);
else if (mode_display == 'E') {
for (int i = Cols; i < 3; i++) {
lcd.setCursor(Rows, i);
for (int j = Rows; j < 20; j++)
lcd.print(" ");
}
}
// LCD步數显示(单位至多十万),通用格式# LCD_Display('F', 0, 2, "X: ", num);
else if (mode_display == 'F') {
lcd.setCursor(Rows, Cols);
int length = str.length();
lcd.print(str);
int digits = (num == 0) ? 6 : log10(num) + 1;
int position = Rows + length + (6 - digits);
lcd.setCursor(position, Cols);
if (num == 0) {
for (int i = 0; i < 6; i++)
lcd.print("0");
} else
lcd.print(num);
}
}*/
void loop() {
LCD_Display(lcd, 'A', 0, 1, "- Version : ", NULL);
LCD_Display(lcd, 'A', 3, 2, "New_mode-V2.5t", NULL);
/*LCD_Display('F', 0, 2, "X: ", num);
LCD_Display('F', 11, 2, "Y: ", num);
num++;*/
T_Developer++;
if (T_Developer > 7)
T_Developer = 0;
delay(1000);
}