CARA PROGRAM I2C LCD KARAKTER 16x2 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 :
- Arduino Uno
- LCD 16x2 dan I2C Module
- Kabel Jumper secukupnya
Library :
Download library lcd I2C di sini (Sumber : https://bitbucket.org/fmalpartida/) dan wire untuk komunikasi I2C di sisni
WIRING DIAGRAM
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() { }
error wire.h knp ya?
BalasHapusmasRahmatullah,pertama pastikan di #include < Wire.h >
BalasHapus#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
gan, ane kok gak muncul tulisannya
BalasHapusyg ada cuma kotak-kotak putih
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
Hapusvoid setup() {
BalasHapusSerial.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() {}
Ko eror di positive ya..minta masukannya dong
BalasHapusMas 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
HapusKo eror di positive ya..minta masukannya dong
BalasHapusMas 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
BalasHapusmengalami masalah yang sama ..langkah diatas sudah di ikuti dan library download dari link diatas , kog blm oke ya,,? minta solusinya mas
HapusPastikan 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 :)
HapusMau 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
BalasHapusuntuk lcd i2c , supaya berhasil.pastikan wiringnya ok dan addressnya sesuai karena i2c komunikasinya pakai address
HapusCara melihat address nya gimana bang?
Hapusupload program di bawa ini, terua masuk Serial Monitor
Hapus#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() {}
Assalamualaikum gan mau nnya kl pake modul i2c d arduino uno bisa pake lebih dr 1 ga ya?
BalasHapusgan, punya saya kok lcdnya terlalu cerah ya?
BalasHapuskirakira bisa ga cahayanya dikurangin lewat kodingan?
di belakang lcd, tepatnya di module I2C ada trimpot ynag berfungsi untuk mengatur tingkat kecerahan.Semoga bermanfaat :)
HapusU/ TA Mikro ardu brp lama ya pak
BalasHapus1-2 minggu biasanya :)
HapusMaaf mau tanya mas. Kalau lcd i2c nya ada 2 buah bagaimana coding nya mas?. Terima kasih sebelumnya
BalasHapussaat deklarasi dibuat 2 sesuai setting jumper address :
HapusLiquidCrystal_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 :)
Munculnya kotak2 mas, padahal kalau pakai code hello world bisa muncul tulisannya, tapi kalau pakai rtc jadi kotak2. Mohon bimbingan
BalasHapusPastkan, 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 :)
HapusMas koq muncul LiquidCrystal_I2C.h : no such file or directory. Maksudnya apa yah
BalasHapusuntuk Library LiquidCrystal_I2C.h di tambahkan dulu di libray arduino.semoga membantu :)
Hapusmas mau nnyak cara nyimpan data atau nilai sensor ke eeprom gmana ya
BalasHapusEeprom 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
HapusMau tanya gan kalau, koding sudah benar dan tak ada yang eror tetapi stelah diupload cuman tampil kotak kotak atau blacklight gimana ya gan Solusinya
BalasHapusPertama 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 :)
HapusMaksudnya wiring module itu apa ya mas?
Hapusdia artikel di atas ada gambar WIRING DIAGRAM, bisa di beriksa antara yang di gambar dengan yang sudah terpasang.sudah sesuai ngga.semoga Bermanfaat :)
Hapussore mas, saya coba upload tapi error seperti berikut:
BalasHapus'POSITIVE' was not declared in this scope
mohon bantuannya
HapusBiasanya error seperti itu, antara librarynya belum ada atau ada library yang bentrok.jadi library lcd i2c yang lain, di remove dulu
HapusGmn cr hapus library lcd i2c?
Hapusdelete filenya aja di arduino=> Library
HapusCara remove library gimana?
BalasHapusbisa dengan remove / delete folder library nya
HapusTerima Kasih Mas, Sudah Berhasil Terima KAsih ILmunya
BalasHapusTerima Kasih, semoga Bermanfaat
Hapusmas kok LCD saya No Address found. kenapa ya mas saya gabisa nemuin address nya. pake modul i2c
BalasHapuspastikan wiringnya sesuai dan addressnya di scan
Hapus#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() {}
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.
BalasHapuspastikan wiring, codenya sama dan library i2c yang lain di buang dulu
HapusIzin tanya Gan. sdh hapus Library pakai Library agan punya, tapi status masih
BalasHapus'POSITIVE' was not declared in this scope
Bisa beritahu solusinya gan
error POSITIVE, sudah di pastikana karena ada double library lcd I2C.solusinya tinggal pastikan delete library lcd i2c yang lain.semoga bermanfaat
HapusLiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
BalasHapusuntuk program setelakh alamat ( 0x3f) itu angkabuat apa ya?
addr, en, rw, rs, d4, d5, d6, d7, bl, blpol
HapusSemoga Bermanfaat :)
tanya dong brow, semua hampir oke, cuma kalau mau display "Arduino", yang muncul kok huruf pertama aja "A"... salah dimn ya...
BalasHapusPastikan program dan wiringnya sesuai
Hapusizin tanya. untuk menghapus library yg lain bagaimana ya? terima kasih
BalasHapusbisa dengan manual, masuk ke mydocument => Arduino +> library, terus delete filenya
Hapushalo kak, izin bertanya lcd saya hanya muncul kotak hitam sebaris, tetapi ketika program berjalan lcd ikut berkedip seakan berganti tulisan itu bagaimana ya?
BalasHapus