Embedded System Project : LCD Display (Part 5)

Galuh Dipa Bharata
3 min readFeb 22, 2021

--

HAI!!
kembali lagi sama aku di segmen embedded system project, OKE!, pekan lalu udah nyoba nih buat pakai external sensor, nah sekarang mau cobain yg lainnya lagi, yaitu Monitor LCD pakai ESP32.

Barang yg dibutuhkan cukup ESP32, LCD, dan jumper wires male-to-female. Nih barangnya!

Alat yang digunakan.

Skema buat sambunginnya kayak gini kurang lebih.

Skema LCD ke ESP32

oke! kurang lebih kalau secara fisik ini yg aku rangkai.

OKE!

Setelah set, kita siapkan kode nya yang berasal, pertama kita cek dulu apakah LCD ini sudah terbaca atau tidak, berikut kodenya

/*********
Rui Santos
Complete project details at https://randomnerdtutorials.com
*********/

#include <Wire.h>

void setup() {
Wire.begin();
Serial.begin(115200);
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.println(address,HEX);
nDevices++;
}
else if (error==4) {
Serial.print("Unknow 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);
}

Oke dan hasil dari yg sudah ku compile dan ku upload seperti ini, berhasil, yeay!

Oke, sudah berhasil, lalu mau coba nulis sesuatu di monitornya, berikut kodenya.

/*********
Rui Santos
Complete project details at https://randomnerdtutorials.com
*********/

#include <LiquidCrystal_I2C.h>

// set the LCD number of columns and rows
int lcdColumns = 16;
int lcdRows = 2;

// set LCD address, number of columns and rows
// if you don't know your display address, run an I2C scanner sketch
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);

String messageStatic = "Static message";
String messageToScroll = "This is a scrolling message with more than 16 characters";

// Function to scroll text
// The function acepts the following arguments:
// row: row number where the text will be displayed
// message: message to scroll
// delayTime: delay between each character shifting
// lcdColumns: number of columns of your LCD
void scrollText(int row, String message, int delayTime, int lcdColumns) {
for (int i=0; i < lcdColumns; i++) {
message = " " + message;
}
message = message + " ";
for (int pos = 0; pos < message.length(); pos++) {
lcd.setCursor(0, row);
lcd.print(message.substring(pos, pos + lcdColumns));
delay(delayTime);
}
}

void setup(){
// initialize LCD
lcd.init();
// turn on LCD backlight
lcd.backlight();
}

void loop(){
// set cursor to first column, first row
lcd.setCursor(0, 0);
// print static message
lcd.print(messageStatic);
// print scrolling message
scrollText(1, messageToScroll, 250, lcdColumns);
}

Dan hasilnya bisa dilihat di video ini!

Oke, mengenai penjelasan kodenya

Biasa, pertama kita import dulu salah satu library untuk LCD ini
#include <LiquidCrystal_I2C.h>

Setelah itu buat ukuran dari kolom dan baris LCD Displaynya.
int lcdColumns = 16;
int lcdRows = 2;

kita kan udah dapet alamatnya inputnya si LCD nih, sekarang kita masukkan ke salah satu fungsi dari library yg udah kita import tadi,
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);

SIP, masuk ke setup(), kita mulai dengan sebuah method, setelah itu menyalakan backlightnya, pakai method juga
lcd.init();
lcd.backlight();

ya kurang lebih gitu awalnya. Lalu ada method scrollText(), fungsi dari method tersebut adalah buat tulisan yg ada di layar LED gerak dari kanan ke kiri. Kalau yg static message itu, dia menampilkan tulisan yg diam saja.

Pelajaran yg aku dapat dari percobaan ini adalah, ketika melakukan compile di arduino, pastikan semua library yg dibutuhkan tersedia. Karna pada awalnya tadi saya mengalami error karna tidak tersedianya library LiquidCrystal_I2C directory saya.

Itu saja, terimakasih sudah membaca :D
Semoga sehat selalu ya!

Galuh Dipa Bharata
18219100

--

--