# I2C 1602液晶顯示模組

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-LoyhZ7TGT0i8ZxuGcbY%2F-LoyhcAFuxNYTdediCB2%2Flinkit7697_i2c1602_00.png?generation=1568715214273497\&alt=media)

{% hint style="info" %}
請先按照以下順序檢查I2C液晶顯示模組是否接線正確，程式是否寫對再進行使用。

1． 將I2C液晶顯示模組轉到背面，並檢查晶片的型號， I2C 液晶顯示模組有PCF8574及PCF8574A這二種晶片。\
2． 將I2C液晶顯示模組轉到背面，並檢查線的位置是否接對。不同晶片的腳位順序會不一樣。\
3．根據晶片型號更改程式碼裡的I2C位址，PCF8574晶片初始化I2C位址為0x27；PCF8574A晶片初始化I2C位址為0x3F。

詳細確認方法位置請參考以下圖片紅框、藍框處
{% endhint %}

![I2C 液晶顯示模組 晶片確認方法](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-MaCx52r8sKL5L5rtdTj%2F-MaDP0yOFAPUboPTG5ha%2Fimage.png?alt=media\&token=3a71fbd4-bb6a-4e6d-8ad4-d01841eb1f5c)

## LinkIt 7697 專案說明

使用「LinkIt 7697 NANO Breakout」連接「I2C 1602液晶顯示模組」，在I2C 1602 液晶顯示模組上顯示「Hello World」。

此**I2C 1602液晶顯示模組**包含於「[**洞洞么教學材料包**](https://www.robotkingdom.com.tw/product/rk-education-kit-001/) 」內。

### LinkIt 7697 電路圖

* [LinkIt 7697](https://www.robotkingdom.com.tw/product/linkit-7697/)
* LinkIt 7697 NANO Breakout
* I2C 1602液晶顯示模組

**I2C 1602液晶顯示模組**是**I2C訊號**輸出， 可以接「I2C」的 LinkIt 7697 NANO Breakout訊號端上。 本範例連接到「**I2C**」，「**SDA**」**←→**「**SDA**」，「**SCL**」**←→**「**SCL**」。

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

如發現液晶顯示模組有沒有正常顯示畫面，另一個可能即是對比預設調整太低，轉動模組背後的可變電阻(如下圖紅框處)把對比值調整至可看清楚之閥值即可顯示畫面。\
\
如發現液晶顯示模組有沒有正常顯示畫面，但程式I2C設定也正確，亮度也調整過，可以試試看按7697的RST鈕，讓板子重新啟動，會重新跑一次I2C的設定讓螢幕可正常顯示。
{% endhint %}

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-MaDPeJgRinrL0Y1d640%2F-MaDW_-CXXVT1ZXl07Ml%2F7697LCD.png?alt=media\&token=e43df2ca-f51b-4a37-af96-21b92b3fb685)

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

![](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)

### BlocklyDuino 積木畫布

在I2C 1602液晶顯示模組上顯示「Hello World」。

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-LoyhZ7TGT0i8ZxuGcbY%2F-LoyhcAUP6BuJScOqGdT%2Flinkit7697_i2c1602_02.png?generation=1568715213829849\&alt=media)

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-LoyhZ7TGT0i8ZxuGcbY%2F-LoyhcAcTxDTPHbdl6ia%2Flinkit7697_i2c1602_03.jpg?generation=1568715215489218\&alt=media)

### Arduino 程式

```c
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd_i2c(0x3F);

void setup()
{
  lcd_i2c.begin(16, 2);
  lcd_i2c.backlight();
  lcd_i2c.clear();
  lcd_i2c.setCursor(0,0);
  lcd_i2c.print("Hello World");
}


void loop()
{

}
```

## micro:bit 專案說明

使用「micro:bit搭配科易KEYES micro:bit 感測器擴充板 V2」連接「I2C 1602液晶顯示模組」，在I2C 1602 液晶顯示模組上顯示「Hello World」。

此**I2C 1602液晶顯示模組**包含於「[**洞洞么教學材料包**](https://www.robotkingdom.com.tw/product/rk-education-kit-001/)」內。

### micro:bit電路圖

* [BBC micro:bit 微控制板  ](https://www.robotkingdom.com.tw/product/bbc-microbit-1/)
* [科易KEYES micro:bit 感測器擴充板 V2  ](https://www.robotkingdom.com.tw/product/keyes-microbit-sensor-breakout-v2/)
* I2C 1602液晶顯示模組

**I2C 1602液晶顯示模組**是**I2C訊號**輸出， 可以接「19、20」的 micro:bit訊號端上。 本範例連接到「P19、P20」。本範例連接到「**I2C**」，「**SDA**」←→「**P20**」，「**SCL**」←→「**P19**」

{% 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-MaDWeIJlhANpIqvRsnC%2F-MaDahVKxUdyQ4sm5AME%2FMICROBITLCD.png?alt=media\&token=e9692bec-093e-4354-a600-457caf9a283c)

![](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)

### Microsoft MakeCode積木畫布

在使用I2C 1602液晶顯示模組之前，需要擴展I2C 1602液晶顯示模組的指令庫。打開makecode程式設計平臺，滾動至指令區最底部，依次點擊進階----擴展，並使用以下網址安裝套件。

I2C 1602液晶顯示模組套件安裝網址：[https://github.com/lioujj/pxt-lcd1602](https://github.com/lioujj/pxt-lcd1602)

![新增擴展套件位置](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-M-NVHF9UyAT9MG-tYm3%2F-M-NWtmQKiVpQAPTyxAa%2F02.jpg?alt=media\&token=6cc66d5d-025d-457b-84f5-809fbee07fae)

![使用網址安裝lcd1602的套件](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2Fsync%2Fdc7f8c73e518ec86f82f098da8875b165e606721.jpg?generation=1627483982415748\&alt=media)

![安裝完成後即可在指令區看到lcd1602選項裡面及有I2C 1602液晶顯示模組的套件](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-M-NVHF9UyAT9MG-tYm3%2F-M-NX5epzmUHXJ_tCgBI%2F04.jpg?alt=media\&token=c789b878-4e28-46f8-8458-308b7900fc52)

在I2C 1602液晶顯示模組上顯示「Hello World」 。

![](https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaZQFBYOS3O0ksiEmR1%2F-M-NVHF9UyAT9MG-tYm3%2F-M-NXAkzB8fxz1S0YhO_%2F05.JPG?alt=media\&token=29d45e53-fcef-41fe-a659-2df31911d08f)

### JavaScript 程式

```javascript
lcd1602.setAddress(
lcd1602.I2C_ADDR.addr2
)
lcd1602.putString("Hello World", 0, 0)
basic.forever(function () {
    
})
```

## Raspberry Pi Pico 專案說明

使用「Raspberry Pi Pico」連接「LED模組」, I2C 1602 液晶顯示模組上顯示「Hello World」。此**I2C 1602液晶顯示模組**包含於「[洞洞么教學材料包](https://robotkingdom.com.tw/product/rk-education-kit-001/)」內。

### I2C 1602液晶顯示模組電路圖

* [Raspberry Pi Pico](https://robotkingdom.com.tw/product/raspberry-pi-pico/)[  ](https://www.robotkingdom.com.tw/product/bbc-microbit-1/)
* [Raspberry Pi Pico擴充板](https://robotkingdom.com.tw/product/pipico-education-kit-001/)[  ](https://www.robotkingdom.com.tw/product/keyes-microbit-sensor-breakout-v2/)
* I2C 1602液晶顯示模組

> **I2C 1602液晶顯示模組**是**I2C訊號**輸出。 LCD的SDA接「D4」，SCL「D5」的Raspberry Pi Pico擴充板訊號端上。

**PCF8574AT晶片接法**

<figure><img src="https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LaZQFBYOS3O0ksiEmR1%2Fuploads%2FhR7X22xVe2Tha0diPFBK%2Fimage.png?alt=media&#x26;token=4ef368bd-59e9-4e0b-8fcf-c7f3f501a310" alt=""><figcaption></figcaption></figure>

**PCF8574晶片接法**

<figure><img src="https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LaZQFBYOS3O0ksiEmR1%2Fuploads%2FfEXOzNy6Id8ZRtQP1CxE%2Fimage.png?alt=media&#x26;token=394e6490-c39c-4ded-8fcf-a8a21a85cc9a" alt=""><figcaption></figcaption></figure>

### Arduino IDE程式

> I2C 1602 液晶顯示模組上顯示「Hello World」。

Arduino程式(IC\_1602\_LCD.ino)如下:

```arduino
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd_i2c(0x3F);

void setup()
{
  lcd_i2c.begin(16, 2);
  lcd_i2c.backlight();
  lcd_i2c.clear();
  lcd_i2c.setCursor(0,0);
  lcd_i2c.print("Hello World");
}

void loop()
{

}
```

### 程式執行結果

<figure><img src="https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LaZQFBYOS3O0ksiEmR1%2Fuploads%2FrLZeIRlOFSg7Q67lykgg%2Fimage.png?alt=media&#x26;token=36d80d3d-4a86-4709-b5c0-989daac59896" alt=""><figcaption></figcaption></figure>
