Connect Arduino กับ I2C LCD (PCF8574)

ต่อบอร์ดทดลองของเรา Arduino กับ อุปกรณ์ I2C LCD

ขั้นแรก ต่อ Vcc / GND / SDA / SCL

ขั้นที่ 2 หา Address ของอุปกรณ์ Address ของ I2C LCD ที่ใช้ชิป PCF8574(T) หรือ PCF8574A(T) จะมี Address ต่างกันนิดหน่อย

PCF8574(T)0x20 – 0x27
PCF8574A(T)0x38 – 0x3F

Address ของ chip 2 รุ่นนี้ vary ได้นิดหน่อยตามขา Address – A1, A2, A3

PCF85740100A2A1A0
0x20000
0x27111
PCF8574A0111A2A1A0
0x38000
0x3F111

โดยปรกติขา A0, A1, A2 ของบอร์ดจีนมักจะปล่อยลอย ไม่มี DIP switch ให้ set ดังนั้นมันเลยเป็น A0 = 1, A1 = 1, A2 = 1 โดย default

ขั้นที่ 3 เลือก Library ‘LiquidCrystal_PCF8574’

#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>

เริ่มใช้งาน

LiquidCrystal_PCF8574 lcd(0x3F);

//เอาไว้ initial I2C bus //เห็นว่า run ครั้งเดียวพอ ไม่ต้องทำบ่อย เพราะมันอาจจะไปรบกวนการทำงานของ I2C device อื่นๆได้ถ้ามันกำลังทำงานอยู่
Wire.begin();

//ส่งสัญญาณไปถามว่าอุปกรณ์ยังอยู่ แล้วพร้อมทำงานหรือไม่
Wire.beginTransmission(0x3F);
error = Wire.endTransmission();

//error = 0 คือ หาอุปกรณ์เจอ พร้อมทำงาน
if (error == 0) {
  //Serial.println(": LCD found.");
  lcd.begin(16, 2);  // initialize the lcd    
  lcd.setBacklight(255);
} else {
  //Serial.println(": LCD not found.");
}  

คำสั่งที่ใช้บ่อย

lcd.home();
lcd.clear();
lcd.setCursor(col, row);
lcd.print(“ABC”);พิมพ์ออกไปที่ตำแหน่ง cursor นั้น หลังจากนั้นเลื่อน cursor ออกไปเรื่อยๆ
ดังนั้น หลังจากพิมพ์ เราไม่ต้องเลื่อน cursor ไปตำแหน่งต่อไปเอง

ยังไม่จบ