--- tags: Arduino --- # Arduino 基礎(LCD)輸入輸出 ## 一、液晶顯示器(Liquid Crystal Display, LCD) ### (一)是用來顯示數字數字、英文字母,常用符號…等的文字型顯示器。 ### (二)每個字元對應一個ASCII 碼,我們只要向液晶顯示器傳送相對應符號的ASCII 碼就可以顯示這個字元。 ### (三)1602 LCD元件參數 #### 1、顧名思義,該型顯示器共有兩列,每列最多可顯示16個字元(16行)。#### 2、1602 LCD 相關參數 #### 3、顯示容量:16×2 個字元 #### 4、晶片工作電壓:4.5~5.5V #### 5、工作電流:2.0mA(5.0V) #### 6、模組最佳工作電壓:5.0V #### 7、字元尺寸:2.95×4.35(W×H)mm ### (四)接腳說明 ![](https://i.imgur.com/pwdpXtt.png) #### 1、HD44780相容的LCD有4-bit和8-bit兩種使用模式 #### 2、使用4-bit模式通訊的時候,只需用到4個高端位元(D4-D7)。此時,低端位元(D0-D3)四支腳位可以不用接,藉以節省I/O腳位的使用, #### 2、4-bit模式時,傳送到LCD的8-bit資料會被分成兩次來傳送:先送4個高端位元,再送4 個低端位元。 ### (五)語法介紹 ```cpp= 1、函式說明 函式庫(Library): LiquidCrystal.h 語法 #include <LiquidCrystal.h> 2、LiquidCrystal():定義LCD各接腳連接的I/O Pin腳 (1) 4-bit模式(只接D4~D7): LiquidCrystal(RS, Enable, D4, D5, D6, D7) LiquidCrystal(RS, RW, Enable, D4, D5, D6, D7) (2) 8-bit模式(接D0~D7): LiquidCrystal(RS, Enable, D0, D1, D2, D3, D4, D5, D6, D7) LiquidCrystal(RS, RW, Enable, D0, D1, D2, D3, D4, D5, D6, D7) 3、lcd.begin(cols, rows)cols: 定義LCD行列數(n行×m列)語法,LCD可顯示的行數(1602有16行)rows:LCD可顯示的列數(1602有2列)。 4、lcd.clear():清除LCD螢幕內容並將游標置於左上角(起始點) 5、lcd.home():將游標置於左上角(不清除LCD內容起始點)語法 6、lcd.setCusor(col, row): 設定游標位置,文字由此開始顯示語法 7、cursor():顯示游標(游標的位置即為下一個文字顯示的位置) 8、lcd.cursor()、lcd.noCursor(): 隱藏游標 9、lcd.write(data): 向LCD寫入(傳送)一個字元語法,data:欲寫入(傳送)至LCD的字元 10、lcd.print(data)、lcd.print(data, BASE) print():將內容向LCD寫入(傳送)一個字元語法 data:要顯示的內容(可為char, byte, int, long 或string) BASE:資料以何種進制系統顯示(二進制:BIN;八進制:OCT;十進制:DEC;十六進制:HEX) 11、lcd.blink()、lcd.noBlink():顯示閃爍的游標、關閉閃爍的游標 12、lcd.display()、lcd.noDisplay():打開液晶顯示器、關閉液晶顯示器 13、lcd.scrollDisplayLeft():螢幕顯示的內容向左滾動一個字元 14、lcd.scrollDisplayRight():螢幕顯示的內容向右滾動一個字元 15、lcd.autoscroll():打開液晶顯示器自動滾動功能 16、lcd.noAutoscroll():關閉打開液晶顯示器自動滾動功能 17、lcd.leftToRight():文字由左至右輸入液晶螢幕 18、lcd.rightToLeft():文字由右至左輸入液晶螢幕 ``` ## 二、實作模擬 ### (一)LCD顯示"Hello World",並顯示執行秒數 #### 1、程式碼 ``` cpp= #include<LiquidCrystal.h> //LiquidCrystal.h程式庫 LiquidCrystal lcd(12,11,5,4,3,2); //LiquidCrystal.h程式庫對應接腳宣告 void setup(){ lcd.begin(16,2); //LCD為2列(row 0~1),每列16(col. 0~15)字 lcd.print("Hello, World!"); //LCD顯示文字 } void loop(){ char s,e,c ; s = 's'; e = 'e'; c = 'c'; lcd.setCursor(0, 1); //設定游標在第0行第1列位置開始顯示 lcd.print(millis()/1000); //在LCD顯示Arduino重開之後經過的秒數 lcd.print(s); lcd.print(e); lcd.print(c); } ``` #### 2、圖示 ![](https://i.imgur.com/p0vg354.png) ### (二)LCD顯示"日期、名字、很棒並閃爍3次" #### 1、程式碼 ``` cpp= #include <Wire.h> #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); delay(1000); lcd.setCursor(0, 0); lcd.print("Today is"); lcd.setCursor(0, 1); lcd.print("2021-06-30"); delay(3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("My name is"); lcd.setCursor(0, 1); lcd.print("William"); delay(3000); lcd.clear(); lcd.print("It s awesome!"); lcd.display(); delay(1000); lcd.noDisplay(); delay(1000); lcd.display(); delay(1000); lcd.noDisplay(); delay(1000); lcd.display(); /*指標閃爍 lcd.blink(); delay(1000); lcd.noBlink(); delay(1000); lcd.blink(); delay(1000); lcd.noBlink(); delay(1000); lcd.blink(); */ } void loop(){ } ``` #### 2、圖示 ![](https://i.imgur.com/4Bns7RJ.png)