Arduino Uno R3開發板的外部IO口是很是有限的。在驅動LCD1602時,儘管咱們的數據線使用了4線,相對於8線方式減小一半,可是在須要外接多種傳感器的應用中,4線驅動仍是佔用了過多的IO。本篇介紹LCD1602的IIC驅動方式,經過IIC轉接板使用IIC接口,只佔用2個IO口就能驅動LCD1602。html
IIC「Inter-Integrated Circuit 集成電路總線」是一種串行通訊總線,應用於板載低速設備間的通信。由飛利浦公司開發的這一通信協議,其目的就是爲了簡化系統硬件設計,減小設備間的連線。
IIC串行總線有兩根信號線,一根是雙向的數字線SDA,另外一根是時鐘線SCL,每一個IIC設備都有本身的地址,IIC總線上多個設備間經過設備地址進行區別。
oop
上圖爲本篇使用的IIC轉接板,直接焊接於LCD1602。可經過跳線帽設置是否開啓背光,經過藍色電位器調節對比度。IIC設備地址可經過短路A0/A1/A2修改,默認地址0x27post
在Arduino IDE中點擊「項目」—「加載庫」—「管理庫」,查找「LiquidCrystal_I2C」,選擇最新版本進行安裝。(這個得慢慢找)ui
IIC轉接板的VCC、GND分別鏈接開發板5V、GND,轉接板的SDA、SCL鏈接開發板A四、A5。spa
爲何接A四、A5腳,這裏能夠參考 3.詳解Arduino Uno開發板的引腳分配圖及定義(重要且基礎)設計
對應到I2C版的code
這樣就明白了吧?htm
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 }
可經過轉接板藍色電位器調節對比度,使LCD1602顯示清晰。blog