Cara Mengakses LCD I2C dengan Arduino

lcd 16x2 i2c adalah salah satu media penampil yang sangat populer digunakan sebagai interface antara mikrokontroler dengan user nya. Pin pada SDA / SCL bisa memakai pin SDA, SCL yang tertera pada arduino atau juga dapat menggunakan Pin A4, A5, GND, 5V.

Cara mengakses LCD I2C dengan arduino

Saya mencoba mengerjakan pekerjaan LCD I2C ini dengan bermodalkan punya komponen dan semangat yang membara untuk bisa menguasai sedikit saja mengenai pemograman Arduino. Dengan bermodalkan dua hal tersebut saya berhasil melakukan proyek kita kali ini.

Cara Mengakses LCD I2C dengan Arduino

Apa itu LCD I2C 16x2?

Komponen project yang satu ini disebut LCD merupakan media tampilan yang paling mudah untuk diamati karena menghasilkan tampilan karakter yang baik dan cukup banyak. Pada LCD 16×2 dapat ditampilkan 32 karakter, 16 karakter pada baris atas dan 16 karakter pada baris bawah.

1. Persiapan Alat dan bahan

Pada project arduino ini kita memerlukan perangkat keras atau beberapa komponen, sebelum bisa memulai mengakses LCD I2C, sobat membutuhkan komponen berikut, antara lain:
1. Arduino board
2. Alphanumeric LCD (Saya menggunakan LCD 16x2)
3. Modul I2C
4. Kabel Jumper


Sobat semua juga perlu mendownload Library LiquidCrystal_I2C.h ini dan menambahkannya pada arduino IDE.

Selain itu, sobat juga butuh Library Wire.h ini dan menguploadnya pada arduino IDE.

2. Merangkai hardware komponen sesuai Skematic

Setelah menyiapkan komponen di atas, silahkan rangkai komponen tersebut seperti gambar di bawah. Jika anda menggunakan Arduino Uno, pin SDA ada di Pin A4 dan SCL ada di Pin A5. 
Jika menggunakan board Arduino tipe lain, silahkan sesuaikan dengan pin SDA dan SCL masing-masing.

3. Mencari alamat LCD I2C

Gunakan program mencari alamat LCD I2C berikut untuk mengetahui addressnya.
#include <Wire.h>
void setup(){
  Wire.begin();
  Serial.begin(9600);
  while (!Serial);
  Serial.println("\nI2C Scanner");
}
 
void loop(){
  byte error, address;
  int nDevices;
  Serial.println("Scanning...");
   
  nDevices = 0;
  for(address = 1; address < 127; address++ ){
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
     
    if (error == 0){
      Serial.print("ditemukan Perangkat i2C pada alamat 0x");
      if (address<16)
      Serial.print("0");
      Serial.print(address,HEX);
      Serial.println(" !");
       
      nDevices++;
    }
    else if (error==4){
      Serial.print("tidak ditemukan alamat 0x");
      if (address<16)
      Serial.print("0");
      Serial.println(address,HEX);
    }
  }
  if (nDevices == 0)
    Serial.println("Tidak Ditemukan Alamat i2c\n");
    else
    Serial.println("selesai\n");
     
    delay(5000);
}

Setelah sukses mengupload program pencari alamat LCD, kita akan lanjut ke langkah membuka serial monitor. Biasanya, untuk memunculkan serial monitor kita harus mengklik tombol kaca pembesar yang berada pada pojok kanan atas aplikasi arduino IDE.
Hasil pencarian alamat LCD I2C

4. Mengupload Program lcd i2c arduino
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);  // Kalau gagal ganti 0x3F ke 0x27 for a 16 chars and 2 line display
void setup()
{
  lcd.init();    // initialize the lcd 
}
void loop()
{
    // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Akses LCD I2C");
  lcd.setCursor(0,1);
  lcd.print("Bintannews.com");
}

Agar proses mengakses lcd dengan arduino bisa berjalan dengan baik, sobat memerlukan program diatas. Langkah penggunaan script mengakses LCD I2C sangat mudah sekali. Sobat tinggal copy program C++ tersebut, lalu pastekan di halaman baru aplikasi arduino IDE.


Bagian hardware LCD yang menggunakan i2c harus menambahkan library liquidcrystal_i2c lcd(0x27 16 2) library download juga pada menu Sketch. Sobat wajib mendowload dan menambah kan library ini ketika bekerja dengan I2C LCD dan Arduino.

Permasalahan Yang timbul

1. Gagal Upload Program arduino, solusinya adalah pindah port USB ataupun perhatikan program dengan baik dan pastikan perintah INIT bukan menggunakan BEGIN.
2. Tampilan LCD ngeblank, solusinya adalah mengatur kontras/kecerahan layar LCD.

Baiklah, Sob! Kami sudah berusaha menjelaskan project cara mengakses LCD I2C dengan arduino ini dengan sangat detail dan lengkap. Semoga sobatku semua bisa mengikutinya.