#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD dengan alamat I2C 0x3F, 16 kolom, dan 2 baris
LiquidCrystal_I2C lcd(0x27, 16, 2);
String text = ""; // Variabel untuk menyimpan teks yang akan ditampilkan
void setup() {
lcd.begin(16, 2); // Inisialisasi LCD dengan 16 kolom dan 2 baris
lcd.backlight(); // Menyalakan backlight LCD
lcd.clear(); // Membersihkan layar
Serial.begin(9600); // Memulai komunikasi Serial Monitor
lcd.setCursor(0, 0); // Mengatur kursor LCD ke awal
lcd.print("Masukkan teks!"); // Pesan awal
Serial.println("Masukkan teks di Serial Monitor:");
}
void loop() {
// Membaca input teks dari Serial Monitor
if (Serial.available() > 0) {
text = Serial.readString(); // Membaca teks dari Serial Monitor
text.trim(); // Menghapus spasi atau karakter kosong di awal/akhir
lcd.clear(); // Membersihkan layar LCD
lcd.setCursor(0, 0); // Mengatur kursor ke awal
lcd.print("Teks diterima:"); // Menampilkan pesan konfirmasi
delay(1000); // Menunggu 1 detik sebelum scrolling
}
// Menampilkan teks dengan efek scroll
if (text.length() > 0) { // Lakukan scroll hanya jika ada teks
int textLength = text.length();
for (int pos = 0; pos <= textLength; pos++) {
lcd.clear(); // Membersihkan layar sebelum menampilkan teks berikutnya
lcd.setCursor(0, 0); // Mengatur kursor ke awal
lcd.print(text.substring(pos, pos + 16)); // Menampilkan substring 16 karakter
delay(200); // Delay untuk memberikan efek scrolling
}
}
}