#include <Arduino.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(18, 17, 23, 22, 21, 19); // RS E D4 D5 D6 D7
const int DISPLAY_DELAY = 500; // Delay dalam milidetik
const int TEXT_LENGTH = 20; // Panjang maksimal teks
char textLine1[] = "Lab Mikrokontroller";
char textLine2[] = "Praktikum Mikrontroller 2";
bool blinking = true; // Variabel untuk mengontrol blinking
void setup() {
lcd.begin(16, 2); // Inisialisasi LCD 16x2
}
void loop() {
static int position1 = TEXT_LENGTH;
static int position2 = TEXT_LENGTH;
// Memindahkan posisi teks
position1--;
position2--;
// Mereset posisi jika perlu
if (position1 < -TEXT_LENGTH) {
position1 = 16; // Sesuaikan dengan lebar layar
}
if (position2 < -TEXT_LENGTH) {
position2 = 22; // Sesuaikan dengan lebar layar
}
// Membersihkan LCD
lcd.clear();
// Menampilkan teks pada baris 1
if (!blinking || (millis() / 500) % 2 == 0) { // Blinking hanya jika blinking true dan waktu saat ini genap
lcd.setCursor(position1, 0);
lcd.print(textLine1);
}
// Menampilkan teks pada baris 2
if (!blinking || (millis() / 500) % 2 == 0) { // Blinking hanya jika blinking true dan waktu saat ini genap
lcd.setCursor(position2, 1);
lcd.print(textLine2);
}
// Membalikkan nilai blinking setiap 2 detik
if (millis() % 2000 == 0) {
blinking = !blinking;
}
delay(DISPLAY_DELAY); // Delay sebelum pembaruan berikutnya
}