Berikut ini percobaan menghubungkan Arduino Nano (ATmega328) dengan display LCD 20×4. Antar muka menggunakan komunikasi serial I2C. LCD 20×4 menggunakan protokol serial, sehinggan perlu modul I2C. Antara Arduino Nano dan LCD 20×4 dipasang modul serial to paralel PCF8574 untuk menghubungkan protokol I2C ke paralel input/output.
Blok diagram sistem adalah sebagai berikut:
Sumber daya dapat menggunakan USB dari komputer ataupun USB charger. Sumber daya dihubungkan ke Arduino Nano menggunakan kabel USB. Arduino Nano dihubungkan ke modul PCF8574 menggunakan komunikasi I2C. Modul PCF8574 dihubungkan ke LCD 20×4 menggunakan komunikasi data paralel.
Berikut ini modul PCF8752 dipasang di bagian belakang LCD:
Pada modul PCF8574 terdapat potensiometer berwarna biru. Potensiometer ini fungsinya adalah mengatur kontras pada LCD 20×4
Penyambungan memperhatikan daftar pin Arduino Nano sebagai berikut:
Kaki yang dipakai pada Arduino Nano adalah SDA (A4) dan SCL (A5). Pin SDA dan SCL pada Arduino Nano sudah tetap, tidak dapat diganti-ganti.
Tegangan kerja Arduino Nano adalah 5 volt. Tegangan kerja LCD 20×4 adalah 5 volt, sehingga dapat langsung menggunakan tegangan 5 volt dari modul Arduino Nano. Tegangan kerja PCF8574 adalah 2,5 volt sampai dengan 6 volt, sehingga aman kalau disambung ke Arduino Nano.
Penyambungan kabel sebagai berikut
Pin pada Modul PCF8752 | Pin Arduino Nano |
GND | GND |
VCC | 5V |
SDA | SDA (A4) |
SCL | SCL (A5) |
Sebelum dicoba ke LCD, sebaiknya diuji dulu apakah sambungan I2C sudah betul , menggunakan perangkat lunak I2C Scanner.
Prosedur instalasi library LCD I2C sebagai berikut:
- Download library Liquid Crystal I2C buatah John Rickman https://github.com/johnrickman/LiquidCrystal_I2C
- Install library tersebut di direktori library Arduino. Biasanya letaknya di Documents/Arduino/libraries atau C:\Users\<USERNAME>\Documents\Arduino\libraries
Contoh program dapat dilihat dari https://github.com/johnrickman/LiquidCrystal_I2C/blob/master/examples/HelloWorld/HelloWorld.pde
Untuk membuat tampilan seperti pada foto, buat program Arduino berikut ini:
// sumber: https://github.com/johnrickman/LiquidCrystal_I2C/blob/master/examples/HelloWorld/HelloWorld.pde
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Elektrologi");
lcd.setCursor(0, 1);
lcd.print("iptek.web.id");
lcd.setCursor(0, 2);
lcd.print("Arduino Nano");
lcd.setCursor(0, 3);
lcd.print("31 Januari 2021");
}
void loop()
{
}
Referensi
- LCD 20×4
- https://github.com/johnrickman/LiquidCrystal_I2C/tree/master/examples/HelloWorld