CARA PROGRAM I2C LCD KARAKTER 16x2 MENGGUNAKAN ARDUINO

Cara Program I2C LCD Karakter 16x2 1602 Menggunakan Arduino

Selamat pagi teman-teman, semoga dalam keadaan Sehat Wal afiat dan tetap semangat :) ,Alhamdulillah bulan ini sudah mulai agak senggang sudah bisa nulis dan sharing lagi, dua bulan kemarin di sibukan bantu teman-teman yg mengurus skripsi,15 an Skripsi selesai,Alhamdulillah dengan nilai yang memuaskan.

Pada kesempatan pagi yang cerah ini ditemani secangkir kopi :), kita akan membahas Cara Program I2C LCD Karakter 16x2 menggunakan Arduino.Pada umumnya LCD karakter di kendalikan dengan metode paralel, metode ini banyak menggunakan pin Mikrokontroler Arduino, biasanya menggunakan 6 sampai 7 Pin, dengan jumlah Pin Arduino Uno yg terbatas sering terjadi pin nya kurang. 

Arduino uno sudah mendukung komunikasi I2C dengan module I2C lcd, kita dapat mengkontrol LCD Karakter 16x2 hanya menggunakan 2 Pin yaitu Analog Input Pin 4(SDA) dan Analog Input Pin 5 (SCL).

Module ini memiliki 4 pin, 2 pin untuk power dan 2 pin untuk komunikasi I2C, Untuk mengontrol kontras ada potensio trimpot di belakang lcd.
Untuk mencoba komunikasi Arduino Uno dengan I2C LCD Karakter 16x2 sebagai berikut : 

Module/Part  yang di butuhkan :
  1. Arduino Uno
  2. LCD 16x2 dan I2C Module
  3. Kabel Jumper secukupnya

Library :
Download library lcd I2C di sini (Sumber : https://bitbucket.org/fmalpartida/)  dan wire untuk komunikasi I2C di sisni

 

WIRING DIAGRAM 


Wiring Diagram I2C LCD Karakter Arduino

ALOKASI PIN ARDUINO   
LCD I2C   Arduino     
SCL A5
SDA A4
VCC +5V
GND Gnd

CONTOH PROGRAM 


#include  <Wire.h>
#include  <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

void setup() 
{
  Serial.begin(9600);
 
  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight
 
  lcd.backlight();
  delay(250);
  lcd.noBacklight();
  delay(250);
  lcd.backlight();
 
  lcd.setCursor(0,0);
  lcd.print(" labelektronika ");
  delay(1000);
  lcd.setCursor(0,1);
  lcd.print(" LCD I2C Module ");
  delay(8000);
}

void loop() 
{
}

Subscribe to receive free email updates:

54 Responses to "CARA PROGRAM I2C LCD KARAKTER 16x2 MENGGUNAKAN ARDUINO"

  1. masRahmatullah,pertama pastikan di #include < Wire.h >
    #include < LiquidCrystal_I2C.h > tanpa spasi jadi #include
    #include .kedua kalau library wire.h ngga ada bisa di download di http://lab-android.com/arduino/library/OneWire.zip

    BalasHapus
  2. gan, ane kok gak muncul tulisannya
    yg ada cuma kotak-kotak putih

    BalasHapus
    Balasan
    1. Mas Luthfi,pastikan wiring nya sudah sesuai, seperti di atas.kalau sudah sesuai wiringnya,ganti 0x3F dengan 0x27 biasanya sudah ok, karena address I2C yg umum, tapi kalau ingin tau secara detail alamat Addressnya bisa pakai program scan I2C.Sebagai berikut.semoga bermanfaat

      Hapus
  3. void setup() {
    Serial.begin (115200);

    // Leonardo: wait for serial port to connect
    while (!Serial)
    {
    }

    Serial.println ();
    Serial.println ("I2C scanner. Scanning ...");
    byte count = 0;

    Wire.begin();
    for (byte i = 8; i < 120; i++)
    {
    Wire.beginTransmission (i);
    if (Wire.endTransmission () == 0)
    {
    Serial.print ("Found address: ");
    Serial.print (i, DEC);
    Serial.print (" (0x");
    Serial.print (i, HEX);
    Serial.println (")");
    count++;
    delay (1); // maybe unneeded?
    } // end of good response
    } // end of for loop
    Serial.println ("Done.");
    Serial.print ("Found ");
    Serial.print (count, DEC);
    Serial.println (" device(s).");
    } // end of setup

    void loop() {}

    BalasHapus
  4. Ko eror di positive ya..minta masukannya dong

    BalasHapus
    Balasan
    1. Mas Makhrozal Mizan, pastikan langkah-langkahnya seperti di atas, selanjutnya hapus library-library lcd i2c yg lain.download library link lcd i2c yg ada di halaman ini.Tutorial ini sy sudah coba dan ststusnya OK.selamat mencoba kembali

      Hapus
  5. Ko eror di positive ya..minta masukannya dong

    BalasHapus
  6. Mas Makhrozal Mizan, pastikan langkah-langkahnya seperti di atas, selanjutnya hapus library-library lcd i2c yg lain.download library link lcd i2c yg ada di halaman ini,extract di folder my document-> Arduino->Library.Tutorial ini sy sudah coba dan ststusnya OK.selamat mencoba kembali

    BalasHapus
    Balasan
    1. mengalami masalah yang sama ..langkah diatas sudah di ikuti dan library download dari link diatas , kog blm oke ya,,? minta solusinya mas

      Hapus
    2. Pastikan library lcd I2c yang lain di hapus dulu, biasanya karena bentrok library.karena metode penulisan program masing2 library beda2.kalau masih error bisa fast respon bisa konsultasi dan hubungi sy di instagram : lab.elektronikaSemoga bermanfaat :)

      Hapus
  7. Mau nanya mas, Koo tulisananya ga muncul ya? udah saya ganti ganti alamatnya, Di piter puter yang di blakang i2c itu wiring nya juga udah bener, Tapi koo masih ka keluar nya tulisanya

    BalasHapus
    Balasan
    1. untuk lcd i2c , supaya berhasil.pastikan wiringnya ok dan addressnya sesuai karena i2c komunikasinya pakai address

      Hapus
    2. Cara melihat address nya gimana bang?

      Hapus
    3. upload program di bawa ini, terua masuk Serial Monitor
      #include

      void setup() {
      Serial.begin (115200);

      // Leonardo: wait for serial port to connect
      while (!Serial)
      {
      }

      Serial.println ();
      Serial.println ("I2C scanner. Scanning ...");
      byte count = 0;

      Wire.begin();
      for (byte i = 8; i < 120; i++)
      {
      Wire.beginTransmission (i);
      if (Wire.endTransmission () == 0)
      {
      Serial.print ("Found address: ");
      Serial.print (i, DEC);
      Serial.print (" (0x");
      Serial.print (i, HEX);
      Serial.println (")");
      count++;
      delay (1); // maybe unneeded?
      } // end of good response
      } // end of for loop
      Serial.println ("Done.");
      Serial.print ("Found ");
      Serial.print (count, DEC);
      Serial.println (" device(s).");
      } // end of setup

      void loop() {}

      Hapus
  8. Assalamualaikum gan mau nnya kl pake modul i2c d arduino uno bisa pake lebih dr 1 ga ya?

    BalasHapus
  9. gan, punya saya kok lcdnya terlalu cerah ya?
    kirakira bisa ga cahayanya dikurangin lewat kodingan?

    BalasHapus
    Balasan
    1. di belakang lcd, tepatnya di module I2C ada trimpot ynag berfungsi untuk mengatur tingkat kecerahan.Semoga bermanfaat :)

      Hapus
  10. U/ TA Mikro ardu brp lama ya pak

    BalasHapus
  11. Maaf mau tanya mas. Kalau lcd i2c nya ada 2 buah bagaimana coding nya mas?. Terima kasih sebelumnya

    BalasHapus
    Balasan
    1. saat deklarasi dibuat 2 sesuai setting jumper address :

      LiquidCrystal_I2C lcd1(0x3D, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
      LiquidCrystal_I2C lcd2(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

      saat inisialisasi juga di buat 2 :

      lcd1.begin(16,2);
      lcd2.begin(16,2);

      Semoga bermanfaat :)

      Hapus
  12. Munculnya kotak2 mas, padahal kalau pakai code hello world bisa muncul tulisannya, tapi kalau pakai rtc jadi kotak2. Mohon bimbingan

    BalasHapus
    Balasan
    1. Pastkan, wiringnya sudah ok,kalau pakai rtc ds3231 sda lcd di paralel dengan sda rtc, scl lcd di paralel dengan scl lcd, setelah wiring sudah sesuai, coba jalankan satu2 program lcd , terus program rtc.semoga membantu :)

      Hapus
  13. Mas koq muncul LiquidCrystal_I2C.h : no such file or directory. Maksudnya apa yah

    BalasHapus
    Balasan
    1. untuk Library LiquidCrystal_I2C.h di tambahkan dulu di libray arduino.semoga membantu :)

      Hapus
  14. mas mau nnyak cara nyimpan data atau nilai sensor ke eeprom gmana ya

    BalasHapus
    Balasan
    1. Eeprom dapat di pakai untuk menyimpan nilai ke variable ,yang tidak hilang saat alat di matikan.untuk detail caranya dapat di baca di artikel ini https://www.arduino.cc/en/Reference/EEPROM

      Hapus
  15. Mau tanya gan kalau, koding sudah benar dan tak ada yang eror tetapi stelah diupload cuman tampil kotak kotak atau blacklight gimana ya gan Solusinya

    BalasHapus
    Balasan
    1. Pertama pastikan wirng module nya sudah sesuai, pastikan program sudah terupload, kalau tetap ngga bisa check address i2c nya, umumnya lcd i2c secara default ada 2 address 0x27 atau 0x3F, semoga membantu :)

      Hapus
    2. Maksudnya wiring module itu apa ya mas?

      Hapus
    3. dia artikel di atas ada gambar WIRING DIAGRAM, bisa di beriksa antara yang di gambar dengan yang sudah terpasang.sudah sesuai ngga.semoga Bermanfaat :)

      Hapus
  16. sore mas, saya coba upload tapi error seperti berikut:

    'POSITIVE' was not declared in this scope

    BalasHapus
    Balasan
    1. Biasanya error seperti itu, antara librarynya belum ada atau ada library yang bentrok.jadi library lcd i2c yang lain, di remove dulu

      Hapus
    2. Gmn cr hapus library lcd i2c?

      Hapus
    3. delete filenya aja di arduino=> Library

      Hapus
  17. Terima Kasih Mas, Sudah Berhasil Terima KAsih ILmunya

    BalasHapus
  18. mas kok LCD saya No Address found. kenapa ya mas saya gabisa nemuin address nya. pake modul i2c

    BalasHapus
    Balasan
    1. pastikan wiringnya sesuai dan addressnya di scan
      #include< Wire.h >

      void setup() {
      Serial.begin (115200);

      // Leonardo: wait for serial port to connect
      while (!Serial)
      {
      }

      Serial.println ();
      Serial.println ("I2C scanner. Scanning ...");
      byte count = 0;

      Wire.begin();
      for (byte i = 8; i < 120; i++)
      {
      Wire.beginTransmission (i);
      if (Wire.endTransmission () == 0)
      {
      Serial.print ("Found address: ");
      Serial.print (i, DEC);
      Serial.print (" (0x");
      Serial.print (i, HEX);
      Serial.println (")");
      count++;
      delay (1); // maybe unneeded?
      } // end of good response
      } // end of for loop
      Serial.println ("Done.");
      Serial.print ("Found ");
      Serial.print (count, DEC);
      Serial.println (" device(s).");
      } // end of setup

      void loop() {}

      Hapus
  19. mas izin nanya, tulisan di lcd koq ngk bisa tampil ya, padahal i2c scanernya pasnya sy buat yg saya punya 0x3f tp tetap juga tidak bisa. itu kira2 masalah dimana mas.

    BalasHapus
    Balasan
    1. pastikan wiring, codenya sama dan library i2c yang lain di buang dulu

      Hapus
  20. Izin tanya Gan. sdh hapus Library pakai Library agan punya, tapi status masih
    'POSITIVE' was not declared in this scope
    Bisa beritahu solusinya gan

    BalasHapus
    Balasan
    1. error POSITIVE, sudah di pastikana karena ada double library lcd I2C.solusinya tinggal pastikan delete library lcd i2c yang lain.semoga bermanfaat

      Hapus
  21. LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
    untuk program setelakh alamat ( 0x3f) itu angkabuat apa ya?

    BalasHapus
    Balasan
    1. addr, en, rw, rs, d4, d5, d6, d7, bl, blpol

      Semoga Bermanfaat :)

      Hapus
  22. tanya dong brow, semua hampir oke, cuma kalau mau display "Arduino", yang muncul kok huruf pertama aja "A"... salah dimn ya...

    BalasHapus
  23. izin tanya. untuk menghapus library yg lain bagaimana ya? terima kasih

    BalasHapus
    Balasan
    1. bisa dengan manual, masuk ke mydocument => Arduino +> library, terus delete filenya

      Hapus
  24. halo kak, izin bertanya lcd saya hanya muncul kotak hitam sebaris, tetapi ketika program berjalan lcd ikut berkedip seakan berganti tulisan itu bagaimana ya?

    BalasHapus