[Tutorial Lengkap] Menggunakan Adapter I2C Untuk LCD Pada Arduino


Aditya Suranata 22 Feb 2017 Elektronika

Mulai Baca

Sebelum mulai ke bahasan inti, ijinkan saya curhat dulu mengenai kisah panjang saya dengan LCD.

Dulu saya pernah mendapatkan proyek yang melibatkan beban besar, yaitu pompa air dan mesin besar. Pada waktu itu, rangkaian mikrokontroler yang saya buat masih menggunakan relai biasa, sehingga menimbulkan banyak riak ketika relainya dinyalakan. Cletek.... dan mesin-mesin yang dikontrol oleh relai pun menyala, namun yang membuat saya pusing seratus keliling waktu itu adalah cletekan dari relai itu berdampak buruk pada LCD yang saya gunakan, efeknya LCD menjadi ora mudeng alias error. Errornya muncul karakter-karakter aneh seperti bahasa planet lain, dan LCDnya tidak merespon lagi terhadap update-an display yang dikirim oleh mikrokontroler. Sehingga saya nyatakan tingkat errornya masuk kategori fatal alias perlu diperbaiki segera, mulailah perjalanan panjang saya dan tim untuk troubleshooting masalah ini.

Meskipun saya dan tim sudah memprediksi bahwa masalah error tersebut disebabkan oleh interferensi dari lonjakan koil pada relai dan bebannya, namun setelah melakukan beberapa uji coba solusi umum yang berkaitan dengan interferensi elektrik (EMI), seperti menambahkan snubber, grounding ulang seluruh komponen, ganti power supply, memecah power supply, menambahkan relai AC antara relai DC dan beban, menambahkan shift register, dan sebagainya, dan sebagainya... sudah kita lakukan sampai mabuk berat... itu kalau dihitung-hitung, kita mentok di masalah LCD selama hampir 2 bulan lebih... hahaha... kalau saya ingat itu rasanya pengen nangis crying kesel overload karena hasil uji cobanya banyak yang PHP, awalnya mau namun dicoba untuk kedua kalinya errornya muncul lagi... kesimpulannya dari semua solusi yang kami lakukan waktu itu hasilnya tetap nihil saudara-saudara...

Setelah kekenyangan dengan berbagai percobaan, kita mulai melakukan posting-posting di berbagai forum untuk mendapatkan bantuan... akhirnya ada yang membalas, seingat saya itu di forum resmi Arduino dan dia menyarankan untuk menggunakan adapter sebelum ke LCD. Tepatnya adapter I2C, jadi sebelumnya saya menyambungkan langsung LCD ke mikrokontroler menggunakan 6 pin, kini dengan adapter ini hanya diperlukan 2 pin saja. Dan voila, tentu hasilnya sudah bisa ditebak, LCD lancar jaya tanpa ada kendala sama sekali meski dipasang pada konfigurasi awal yang sebelumnya super duper bermasalah. Senangnya hati ku waktu itu... hahaha....

Oke, sekian curhatan saya mengenai pengalaman pahit dengan LCD... mungkin saja ada manusia lain dimuka bumi ini yang mengalami hal serupa, dan semoga tulisan ini dapat membantunya.

Sekarang mari langsung ke inti tulisan, yaitu tutorial menggunakan adapter I2C untuk LCD 16x2.

Pengkabelan

Tahap pertama adalah pengkabelan, dan ini sangatlah sederhana karena menggunakan komunikasi I2C. Cukup hubungkan GND VCC ke power supply, atau pin GND ke GND & VCC ke 5V jika menggunakan Arduino. Setelah itu sambungkan dua pin datanya yaitu SDA & SCL masing-masing ke A4 & A5. Done!

Unduh library yang diperlukan

Download dulu library tambahan yang diperlukan, yaitu LiquidCrystal_I2C & One Wire. Link download ada pada bagian bawah tulisan ini yaitu pada bagian lampiran. Setelah mendownload, ekstrak isinya ke C:\Program Files\Arduino\libraries.

Koding pada Arduino

Koding pada Arduino sangat sederhana dan hampir sama dengan koding menggunakan LCD tanpa adapter. Namun, hal yang paling penting yang harus diperhatikan adalah alamat dari adapternya, pada contoh menggunakan alamat 0x3F, sedangkan beberapa vendor ada yang menggunakan 0x27 dan 0x20, jadi kalau tulisan tidak muncul coba ganti alamatnya dan putar-putar potensio pada bagian belakang adapter untuk mengatur kontrasnya. Berikut kodenya:

 
//===== LCD ========
//LiquidCrystal lcd(18, 13, 22, 21, 20, 19);
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x3F     // Jika 0x3F tidak mau coba gunakan 0x27 atau 0x20
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7
LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

void setup() {
  lcd.begin (16,2);
  // Nyalakan lampu backlight
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
  
  // Posisikan kursor dan cetak teks contoh
  lcd.home ();                   // tulis pada baris pertama
  lcd.print("Thank you!"); 
  lcd.setCursor ( 0, 1 );        // tulis pada baris kedua
  lcd.print("It's Working!");
}

void loop() {
  //Tambahkan kode lain disini
}

Upload ke Arduino dan josss... sekian curhatan singkat ini, semoga bermanfaat

 

Komentar

Saya sudah mengikuti tutor diatas namun ada kendala
disini saya menggunakan LCD 20x4 dengan I2C Backpack

Hasilnya seperti ini :
https://puu.sh/uAHJz/29ebc50625.jpg

Pengkabelan sudah mengikuti tutorial diatas :
https://puu.sh/uAHJf/1a4ade3589.jpg
https://puu.sh/uAHJQ/c1aea954aa.jpg

Saya juga sudah melakukan scan address dan terdeteksi address 0x3F sama seperti tutor

Sudah dicoba untuk memutar potensio warna biru pada bagian belakang modul I2C? Mungkin kontrasnya kurang diatur

HTSL://HIGH THINKING SIMPLE LIVING . ME

Aditya Suranata

Tentang Penulis, Aditya Suranata

Aditya suka menulis, bukan hanya sekedar hobi, menulis menjadi medianya untuk mencurahkan pikiran dan perasaan. Di TutorKeren.com kebanyakan menyumbang tulisan sesuai dengan minat dan keahliannya yaitu pada kategori pemrograman dan elektronika. Selain itu juga gemar menulis mengenai hal-hal umum, seperti ilmu alam, sosial dan beberapa pengalamannya yang mungkin bisa berguna untuk orang lain.

lihat artikel lain oleh Aditya Suranata

Artikel Lainnya

Kategori Tulisan

E-Book Terbaru

Teknik Antarmuka MATLAB dan Arduino

Teknik Antarmuka MATLAB dan Arduino - Cover.jpg
Pelajari konsep yang sangat luar biasa antara visualisasi, analisis dan komputasi yang ditawarkan MATLAB dengan Platform Arduino sebagai perangkat...
Jumlah Halaman:
411 Halaman

Video Terbaru

Belum Puas ? Mari Kita Saling Bicara


Join Forum Diskusi Narin Laboratory untuk berdiskusi dengan respon cepat mengenai berbagai macam tutorial hingga ulasan yang terdapat di blog ini. Untuk berlangganan artikel terbaru silahkan Like & Follow Facebook Page Narin Laboratory dan Follow Twitter @tokonarinjaya