LCD 2004 atau 20x4 dengan I2C Arduino

22.40 Posted by Ali Mahfud , No comments
LCD 2004 dengan I2C Arduino

Pada postingan kali ini penulis akan membuat tutorial cara menghubungkan LCD 20x4 atau LCD 2004 dengan IC I2C pada Arduino. Pada kesempatan kali ini Penulis menggunakan alat atau peralatan sebagai berikut.


I2C Version 1

LCD 20x4 atau LCD 2004
Pada IC I2C ini merupakan sebuah alat untuk memangkas pin yang dibutuhkan LCD menjadi 4 pin saja. Alat ini sangat berguna untuk pengguna yang menggunakan banyak sensor pada Arduinonya, Pin yang digunakan I2C ini adalah pin SCL dan SDA.
Untuk pengimplementasiannya I2C ini menggunakan Address untuk dihubungkan ke Arduino. Langsung saja, berikut cara-cara yang diperlukan untuk menggunakan I2C LCD 2004 kali ini.

Hal yang pertama dilakukan adalah menghubungkan rangkaian LCD 2004 I2C dengan Arduino. Konfigurasi pin I2C dan Arduino adalah sebagai berikut.

I2C          Arduino UNO                                      I2C          Arduino Mega
GND ----- GND                                                  GND ----- GND
VCC ----- 5V                                                      VCC ------ 5V
SDA ----- A4                                                       SDA ----- 20
SCL ------ A5                                                      SCL -----  21

1. Scan Address I2C
    Pertama, hal yang harus dilakukan adalah scan Address I2C yang dimiliki, walaupun biasanya Address yang digunakan adalah 0x27 namun ada juga beberapa yang menggunakan Address 0x3F. Sketch yang digunakan untuk scan adalah sebagai berikut.

Sketch:

//Pertama sertakan library Wire.h
#include <Wire.h>

void setup() {
  Serial.begin (9600);
  // 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() {}
Buka Serial Monitor pada Arduino IDE untuk melihat hasil Address atau alamat I2C yang terbaca.
Hasil pada serial monitor:
I2C scanner.Scanning . . .
Found address: 63 (0x3F)
Done.
Found 1 device(s).
Jika tampilan diatas muncul pada Serial Monitor, berarti proses scan address berhasil dan Address I2C yang terbaca adalah 0x3F

2. Sketch LCD 2004 atau LCD 20x4 dengan I2C
  Setelah melakukan scanning address pada IC I2C selanjutnya masuk ke Sketch Arduino untuk menampilkan karakter ke LCD 2004 atau LCD 20x4.
Hal yang dibutuhkan adalah Library untuk LCD tersebut. Library dapat didownload disini. Atau bisa di download pada menu Download.

Setelah Library sudah didownload, import atau masukkan ke Arduino IDE dengan  klik Sketch --> Include Library --> Add .ZIP Library... dan pilih library yang telah didownload tadi. Kemudian, setelah input library selanjutnya adalah memasukan atau membuat sketch pada Arduino IDE. Sketch LCD 2004 untuk arduino adalah sebagai berikut.
Sketch:
/*-----( Masukan Library yang dibutuhkan )-----*/
#include <Wire.h>  // Comes with Arduino IDE
#include <LiquidCrystal_I2C.h>

/*-----( Deklarasi Konstanta )-----*/
/*-----( Deklarasi Objek )-----*/
// Konfigurasi LCD address ke 0x3F untuk tampilan 20 karakter dan 4 baris
// Atur pin pada I2C chip untuk koneksi ke LCD:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Atur LCD I2C address


/*-----( Deklarasi Variabel )-----*/
void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);  // Mengaktifkan serial

  lcd.begin(20,4);         // inisialisasi LCD dengan 20 karakter dan 4 baris

// ------- Melakukan blink 3 kali (Opsional) -------------
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight(); // Diakhiri dengan backlight on  

//-------- Menulis/menampilkan karakter pada LCD ------------------
  // CATATAN: Posisi Kursor: Baris dan Karakter mulai pada 0  
  lcd.setCursor(3,0); //Huruf akan mulai pada karakter ke 4 dan baris 0 pada LCD
  lcd.print("Hello, world!");
  delay(1000);
  lcd.setCursor(2,1);
  lcd.print("From YourHand");
  delay(1000);  
  lcd.setCursor(0,2);
  lcd.print("20 by 4 Line Display");
  lcd.setCursor(0,3);
  delay(2000);   
  lcd.print("GOOD DAY");
  delay(8000);
  // Tunggu selama 8 detik untuk dapat mengetik karakter pada serial monitor 
  lcd.setCursor(0,0); //Mulai dari Karakter 0 dan baris 0
  lcd.print("Start Serial Monitor");
  lcd.setCursor(0,1);
  lcd.print("Type chars 2 display");  

}/*--(end setup )---*/


void loop()   /*----( LOOP: DIEKSEKUSI TERUS MENERUS )----*/
{
  {
    // ketika karakter datang dari serial port...
    if (Serial.available()) {
      // delay untuk menunggu pesan ditulis pada serial
      delay(100);
      // Menghapus layar
      lcd.clear();
      // Membaca semua karakter yang diketik pada serial monitor
      while (Serial.available() > 0) {
        // menampilkan setiap karakter ke lcd
        lcd.write(Serial.read());
      }
    }
  }

}/* --(end main loop )-- */

Sekian share tentang LCD 2004 atau LCD 20x4 dengan menggunakan I2C dan melakukan scan address I2C. Semoga bermanfaat.

Referensi : arduino-info.wikispaces.com
                  www.arduino.cc
               

0 Comment:

Posting Komentar