2016年8月23日 星期二

Arduino系列:如何使用Arduino IIC / I2C / 介面 LCD1602(轉接板)


在過去使用一般的LCD需要很多的腳位,像是Arduino Uno,I/O腳位也就頂多只有20個,當我們使用的感測器變多時,就會有遇到I/O就不夠用的狀況!所以為了解決這個狀況,I2C就這樣誕生了,原來的LCD1602起碼需要有7個I/O,使用I2C的話,就只佔用2個IO而已,I2C除了有效減少腳位,也能大大簡化接線的複雜性。
但這個東西通常會有些問題,就是不一樣的廠商所製造的I2C,他們所使用的,設備地址會有不一樣的問題,像是一般通常使用0x20或是0x27,但是有些甚至會使用到0x3F等奇怪的地址,所以常常會有人說為什麼編譯沒有問題,但實際就是沒有畫面的情況,為了解決這個問題,所以本篇也會教你如何用寫的去偵測腳位,並將其正確顯示使用。



以下是所使用的腳位

  • SDA 接 Arduino Uno 的 A4 (Arduino Mega 接 20)
  • SCL – 接 Arduino Uno 的 A5 (Arduino Mega 為 接 21)
  • GND – 接 GND
  • VCC – 接 +5V

使用的LiquidCrystal_I2C Library:
下載網址:New LiquidCrystal
直接下載:NewliquidCrystal_1.3.4.zip(目前最新1.3.4版)

以下為位址偵測範例程式碼:
找到腳位後,如Found address: 63 (0x3F),記住你的腳位(0x3F),修改你要的LiquidCrystal_I2C lcd,改成LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);,這樣就完成囉。

寫作參考:LCD Displays (Blue and Yellow) with I2C/TWI Interface