1. IIC轉接板介紹
Arduino Uno R3開發板的外部IO口是非常有限的。在驅動LCD1602時,盡管我們的數據線使用了4線,相對於8線方式減少一半,但是在需要外接多種傳感器的應用中,4線驅動還是占用了過多的IO。本篇介紹LCD1602的IIC驅動方式,通過IIC轉接板使用IIC接口,只占用2個IO口就能驅動LCD1602。
IIC「Inter-Integrated Circuit 集成電路總線」是一種串行通信總線,應用於板載低速設備間的通訊。由飛利浦公司開發的這一通訊協議,其目的就是為了簡化系統硬件設計,減少設備間的連線。
IIC串行總線有兩根信號線,一根是雙向的數字線SDA,另一根是時鍾線SCL,每個IIC設備都有自己的地址,IIC總線上多個設備間通過設備地址進行區別。

上圖為本篇使用的IIC轉接板,直接焊接於LCD1602。可通過跳線帽設置是否開啟背光,通過藍色電位器調節對比度。IIC設備地址可通過短路A0/A1/A2修改,默認地址0x27
2. 安裝驅動庫
在Arduino IDE中點擊「項目」—「加載庫」—「管理庫」,查找「LiquidCrystal_I2C」,選擇最新版本進行安裝。(這個得慢慢找)


3.實驗材料
- Uno R3開發板
- 配套USB數據線
- 面包板及配套連接線
- LCD1602液晶屏帶IIC轉接板
4.實驗步驟
4.1.電路連接。
IIC轉接板的VCC、GND分別連接開發板5V、GND,轉接板的SDA、SCL連接開發板A4、A5。

為什么接A4、A5腳,這里可以參考 3.詳解Arduino Uno開發板的引腳分配圖及定義(重要且基礎)

對應到I2C版的

這樣就明白了吧?
4.2. 新建sketch,拷貝如下代碼替換自動生成的代碼並進行保存。
1 /* 2 * LCD1602 IIC驅動 3 */ 4 #include <Wire.h> 5 #include <LiquidCrystal_I2C.h> 6 7 LiquidCrystal_I2C lcd(0x27,16,2); //配置LCD地址及行列 8 9 void setup() 10 { 11 lcd.init(); //初始化LCD 12 lcd.backlight(); //打開背光 13 } 14 15 void loop() 16 { 17 lcd.setCursor(0,0);//設置顯示位置 18 lcd.print("hello ");//顯示字符數據 19 lcd.setCursor(0,1);//設置顯示位置 20 lcd.print("world !");//顯示字符數據 21 }
4.3. 連接開發板,設置好對應端口號和開發板類型,進行程序下載。

5.實驗現象
可通過轉接板藍色電位器調節對比度,使LCD1602顯示清晰。

