---
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)