Anda di sini

Elektronika

[Tutorial Lengkap] Menggunakan Adapter I2C Untuk LCD Pada Arduino

Aditya Suranata - 22 Februari 2017 22:35:00 2

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

Produk Terkait
Blue 16x2 LCD Display Dua Pin + I2C Adapter Module

Blue 16x2 LCD Display Dua Pin + I2C Adapter Module

CMP230317-64

Modul LCD 16x2 dengan koneksi I2C dua kabel sehingga tidak memerlukan banyak kabel, modul ini sangat cocok untuk projek yang melibatkan arus besar...

55,000 IDR Beli

Omron 5V 4 Channel Solid State Relay Module 240V 2A Output

Omron 5V 4 Channel Solid State Relay Module 240V 2A Output

CMP230317-54

Modul relay terbaru berjenis solid state. Relai model ini sangat cocok untuk digunakan pada proyek berbasis mikrokontroler, terutama yang menggunakan...

172,000 IDR Beli

2.312
Image

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.

Artikel Menarik Lainnya

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.jpgPengkabelan sudah mengikuti tutorial diatas :https://puu.sh/uAHJf/1a4ade3589.jpghttps://puu.sh/uAHJQ/c1aea954aa.jpgSaya 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

Mari Gabung

Halo Emo 51 , Ada yang ingin disampaikan? Jangan sungkan untuk gabung diskusi ini. Silahkan Login dulu atau Daftar baru.