// Nama : IRWAN BUDIANTO
// NIP : 230103299
#include <Wire.h> // Library untuk komunikasi I2C
#include <LiquidCrystal_I2C.h> // Library untuk LCD I2C
// Inisialisasi LCD I2C (ganti alamat I2C jika perlu)
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C
// Pin untuk pushbutton
const int button1Pin = 23;
const int button2Pin = 19;
void setup() {
pinMode(button1Pin, INPUT); // Mengatur pin sebagai input
pinMode(button2Pin, INPUT); // Mengatur pin sebagai input
// Inisialisasi LCD
Serial.begin(9600);
lcd.init();
lcd.backlight();
// Tampilkan "Selamat Datang"
lcd.setCursor(0, 0);
lcd.print("Selamat Datang");
delay(2000);
// Tampilkan "Pilih button"
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pilih button");
}
void loop() {
// Cek jika button 1 ditekan
if (digitalRead(button1Pin) == LOW) {
displayScrollingText(" 1 nottuB", 0); // Tampilkan "Button 1" di baris 0
}
// Cek jika button 2 ditekan
if (digitalRead(button2Pin) == LOW) {
displayScrollingText("2 nottuB", 1); // Tampilkan "Button 2" di baris 1
}
}
void displayScrollingText(String text, int row) {
lcd.clear();
int textLength = text.length();
// Geser teks dari kiri ke kanan
if (row == 0) {
for (int position = 0; position < 16 + textLength; position++) {
lcd.setCursor(16 - position, row);
if (position < textLength) {
lcd.print(text.charAt(position));
}
delay(250); // Jeda untuk pergeseran
}
}
// Geser teks dari kanan ke kiri
else if (row == 1) {
for (int position = 0; position < 16 + textLength; position++) {
lcd.setCursor(position, row);
if (position < textLength) {
lcd.print(text.charAt(textLength - position - 1));
}
delay(250); // Jeda untuk pergeseran
}
}
}