# LCD1602液晶模組

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-Lx00XGnqAn7JxlS80YM%2F-Lx07QqqpiXAOp8KNI5q%2F01.png?alt=media\&token=a5df992b-4623-4acc-9a8e-c488ffe19f31)

## 專案說明

使用「科易KEYES Arduino UNO R3 開發板」連接「LCD1602液晶模組」, 在LCD1602液晶模組上顯示「Hello World」。

此**LCD1602液晶模組**包含於「[洞洞兩教學材料包 Education Kit 002](https://www.robotkingdom.com.tw/product/rk-education-kit-002/)」內。

## KEYES Arduino UNO R3電路圖

* [KEYES Arduino UNO R3&#x20;  ](https://www.robotkingdom.com.tw/product/keyes-uno-r3/)
* 通用型彩色Sensor shield v5.0感測器擴充板
* LCD1602液晶模組

**LCD1602液晶模組**是**I2C訊號**輸出， 可以接「I2C」的KEYES Arduino UNO R3訊號端上。本範例連接到「I2C」，「**SDA**」**←→**「**SDA**」，「**SCL**」**←→**「**SCL**」

{% hint style="info" %}
I2C 液晶顯示模組有PCF8574及PCF8574A這二種晶片，而其中PCF8574晶片初始化I2C位址為0x27；PCF8574A晶片初始化I2C位址為0x3F

如發現液晶顯示模組有沒有正常顯示畫面，另一個可能即是對比預設調整太低，轉動模組背後的可變電阻(如下圖紅框處)把對比值調整至可看清楚之閥值即可顯示畫面。
{% endhint %}

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-Lx00XGnqAn7JxlS80YM%2F-Lx07y89jJntq6X_mbea%2F02.png?alt=media\&token=05820221-8670-4543-8610-b22b3e3c8f57)

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-M0pigli0_mwWdT2kRad%2F-M0q5kBR2Vj-4kpfTBmB%2FLCD%E8%83%8C%E9%9D%A2.jpg?alt=media\&token=4c9b04ec-b92c-4748-a968-25dc8a974f5a)

## Arduino 程式

由於LCD1602液晶模組是函式庫型模組，所以需要先在Arduino上下載函式庫，下載方法如下。

在Arduino上選擇工具，選擇管理程式庫，在管理程式庫搜尋LiquidCrystal I2C選擇LiquidCrystal I2C by Frank de Brabander版本1.1.2並安裝。

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-Lx00XGnqAn7JxlS80YM%2F-Lx083tCgabInrUNTcBj%2F03.png?alt=media\&token=700cc23f-9196-41db-bce3-8e13ce402846)

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-Lx00XGnqAn7JxlS80YM%2F-Lx086S_mQo18zGf2gem%2F04.png?alt=media\&token=148bc0ff-b57f-4b9f-86fa-80c9f906f607)

在I2C 1602液晶顯示模組上第一列顯示「Hello World」第二列顯示「Hello World2」。

產生出的 Arduino 程式如下

```c
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Hello World");
  lcd.setCursor(0,1);
  lcd.print("Hello World2");
}


void loop()
{
}

```
