使用 Arduino 板控制 LCD 顯示字元"2013 年 8 月 5 日"。文字型 LCD 模組提 供使用者可以自建 8 個 58 字形,每個字形需要 8 個位元組,其中每個位元組只 使用位元 0~4,位元 5~ 7 則不使用(設定為 0)。 LCD 使用位元對映方式來顯示 字形,當位元值為 1 時則亮,位元值為 0 則不亮。如圖 10-15 所示為本例所使用 的年、月、日自建字形定義。
#include <Wire.h> // Arduino IDE 內建 #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); byte yearChar[8]={B01000,B11111,B00010,B01111,B01010,B11111,B00010,B00000}; byte moonChar[8]={B01111,B01001,B01111,B01001,B01111,B01001,B11101,B00000}; byte dayChar[8]={B01111,B01001,B01001,B01111,B01001,B01001,B01111,B00000}; int years=2018; byte moons=1; byte days=31; void setup() { lcd.begin(16,2); lcd.createChar(0,yearChar); lcd.createChar(1,moonChar); lcd.createChar(2,dayChar); } void loop() { lcd.setCursor(0,0); lcd.print(years); lcd.write(byte(0)); lcd.print(moons); lcd.write(byte(1)); lcd.print(days); lcd.write(byte(2)); }
createChar( )函式的功能是自建一個字元, HD44780 控制晶片最多可以讓使用 者自建八個 58 的字元(編號 0~7),每個字元使用 8 個位元組來定義字元資料,而 每個位元組只使用位元 0~4,位元 5~7 則不用,例如自建愛心符號如圖 10-12 所示, 設定位元資料為邏輯 0 則不亮,邏輯 1 則亮。
createChar()函式有 num、data 兩個參數必須設定,num 參數是設定自建字元的 編號,data 參數是所定義字元資料的陣列名稱。如果要顯示自建的字元,可以使用 write()函 式 , 用法 為 write(num)。在使用 createChar()函 式 之 前, 必須 先使 用 LiquidCrystal()函式宣告一個 LiquidCrystal 資料型態的物件。
格式: createChar(num,data)
範例:
include <LiquidCrystal.h> //使用LiquidCrystal函式庫。 LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); //宣告 lcd 變數。 byte heart[8] = {B00000,B01010,B11111,B11111,B01110,B00100, B00000,B00000}; … lcd.createChar(0,heart); //自建愛心字元。 lcd.write(byte(0)); //顯示自建愛心字元。
1.設計 Arduino 程式,在第 0 行、第 0 列顯示"2013 年 08 月 05 日",在第 0 行第 1 列 顯示"I 愛心 LCD",愛心符號如圖所示。
2.設計 Arduino 程式,在第 0 行第 0 列顯示"2013 年 08 月 05 日",在第 0 行第 1 列閃 爍顯示"笑臉happy笑臉",笑臉符號如圖所示。