/*
電子元件:LCD
功能:使用LCD顯示畫面
接線:
VSS - GND
VDD - 3.3V
RS - 15 1:D0~D7當作資料解讀 0:D0~D7當作指令解讀
RW - GND 1:從LCD讀取資料 0:寫資料到LCD
E - 2 Enable
D4 - 4
D5 - 5
D6 - 18
D7 - 19
A - 背光正極
K - 背光負極
*/
#include <LiquidCrystal.h> // 使用 LCD 函式庫
// LCD 接腳設定
#define RS_pin 15
#define E_pin 2
#define D4_pin 4
#define D5_pin 5
#define D6_pin 18
#define D7_pin 19
// 建立 LiquidCrystal 物件,名稱 lcd
LiquidCrystal lcd(RS_pin, E_pin, D4_pin, D5_pin, D6_pin, D7_pin);
// 自訂愛心字符位元資料
// 每個字符需要 8 個位元組,其中每個位元組只使用位元 0~4,位元 5~7 則不使用(設定為 0)
// LCD 使用位元對映方式來顯示字符,當位元值為 1 時則亮,位元值為 0 則不亮。
uint8_t heart[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000,
};
void setup() {
lcd.createChar(3, heart); // 自訂愛心字符
lcd.begin(16, 2); // 初始化 LCD 螢幕,並指定顯示器的尺寸(行數和列數)
lcd.setCursor(0,1); // 定位 LCD 遊標;即設定後續寫入 LCD 的文字顯示位置。
lcd.print(" I \x03 Arduino"); // 輸出資料
delay(500);
}
void loop() {
// 愛心動畫
uint8_t heart2[8] = {0};
for (int i = 0; i < 8; i++) {
heart2[i] = heart[i];
lcd.createChar(3, heart2);
lcd.print(" I \x03 Arduino");
delay(100);
}
delay(500);
}