Pengantar LCD I2c Arduino 20×4 dan 16×2
LCD i2c untuk arduino adalah sebuah shield LCD display 20×4 atau 16×2 denga mengubah data i2c menjadi data parallel dengan ic PCF8574. Pada umum nya LCD ini dihubungkan ke Arduino atau atmega non Arduino menggunakan 7 pin. Ini berarti kita sudah menghabiskan 7 pin hanya untuk menampilkan data dengan display LCD ini. Tapi dengan LCD I2C ini, kita hanya menggunakan dua pin aja dari arduino, ya itu menggunakan pin SDA dan SCL.
I2C ini adalah salah satu protokol interface data, pengiriman data, ada banyak jenis type interface data yang biasa kita dengar, seperti USART, I2C, SPI dan lain lain. Unik nya I2C ini mampu menghubungkan banyak device dalam satu system, bahkan bisa menghubungkan banyak arduino, dan control lain nya.
Auto scan Address I2C LCD Arduino, program LCD I2C Tanpa Ribet
setiap device slave memiliki address, sehingga master akan mengetahu sebenar nya data ini i2c ini datang dari device mana. Untuk mengetahui address dari i2c LCD arduino ini akan kita bahasa di bawah, langkah langkah memprogram i2c Arduino
Bahan yang di butuhkan i2c LCD ini
- Arduino, kamu bisa menggunakan beberapa jenis arduino, seperti arduino nano, uno, mega2560, atau arduino jenis lain nya, untuk contoh di tutorial ini, saya menggunak arduio mega
- LCD i2C shield dan LCD display, bisa menggunakan LCD 20×4 atau 16×2, maksud dari 20×4 adalah 20 colom 4 baris, begitu juga dengan 16×2 artinya adalah 16 colom, dua baris
- Jumper, untuk arduino Mega2560 kita akan menggunakan jumper male to female, jumper ini yang akan menghubungkan vcc, gnd, SDA dan SCL ke arduino.
- Library LCD i2C bisa unduh di sini
Wiring Arduino i2C LCD 20×4 dan 16×2
Pada dasar nya komunikasi i2c antar device memiliki wiring yang sama, yaitu, SDA to SDA, SCL to SCL. coba perhatikan configurasi kaki Arduino mega2560, pada pin 20 dan 21, untuk jenis arduino nano dan uno bisa kamu lihat dia di pin berapa,
ingat SDA to SDA dan SCL to SCL
Nah kebetulan saya lagi punya Arduino Mega2560 maka kita akan mencoba bagai mana wiring menggunakan Arduino Mega ini. Coba perhatikan gambar di bawah ini.
jadi shield lcd i2c disolder dulu, perhatikan dengan teliti jangan sampai terbalik, untuk cara penyolderanya bisa kamu lihat di gambar di bawah ini, ini adalah solderan saya sendiri. 🙂 solderan pertama saya menggunakan LCD i2c pada arduino.
Check address alamat i2c LCD Arduino
Sebelum nya kita sudah membahas di atas bahwa setiap device yang menggunakan protokol pengiriman data dengan i2c harus memiliki alamat atau address, alamat ini lah yang akan dicheck data dari mana yang harus di olah oleh master disini di master nya yang berfungsi adalah Arduino Mega2560. Bagaimana kah cara menguji nya agar di dapat kan address dari i2c LCD ini? begini listing program nya
#include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for serial monitor Serial.println("\nI2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) { Serial.print("Unknown error at address 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); delay(5000); }
Upload program di atas ke mega2560 atau jenis Arduino kamu maka akan terlihat di serial monitor arduino seperti di gambar di bawah ini.
Uji I2C LCD Display Arduino 20×4
Jika kita lihat di atas maka address i2c LCD nya adalah 0x3F, nah sekarang kita coba upload program berikut ini ke dalam, untuk melihat apakah LCD bekerja dengan normal, sesuai dengan yang kita inginkan, berikut program nya
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F, 20, 4); void getText(); void updateLCD(); unsigned char line1[20]; unsigned char line2[20]; unsigned char line3[20]; unsigned char line4[20]; int data1 = 20; int data2 = 40; int data3 = 60; int data4 = 80; void setup() { // put your setup code here, to run once: lcd.init(); lcd.backlight(); } void loop() { // put your main code here, to run repeatedly: updateLCD(); delay(1000); lcd.clear(); delay(250); } void getText() { sprintf(line1, "Data1: %-i", data1); sprintf(line2, "Data2: %-i", data2); sprintf(line3, "Data3: %-i", data3); sprintf(line4, "Data4: %-i", data4); } void updateLCD() { getText(); lcd.setCursor(0, 0); lcd.printstr(line1); lcd.setCursor(0, 1); lcd.printstr(line2); lcd.setCursor(0, 2); lcd.printstr(line3); lcd.setCursor(0, 3); lcd.printstr(line4); }
Nah begitu lah salah satu contoh memprogram bagaimana menggunakan I2C LCD Arduino, Silahkah kembangkan sesuai kebutuhan anda,
Apakah teman-teman bosa cara scan baru program ulang? nih ada tutorial nya, auto scan address i2c LCD, berikut link nya
auto scan address i2C lcd Arduino
Jika Teman-teman malas dengan scan i2C LCD, ingin buat driver LCD sendiri dengan IC74HC595, teman-teman cukup clik link di bawah ini.
Thanks
refrensi: