#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int LEDM = 2;
int LEDK = 3;
int LEDH = 4;
int buzzer = 5;
void TulisanBergerak(int row, String message, int delayTime, int kolom) {
for (int i=0; i < kolom; i++) {
message = " " + message;
}
message = message + " ";
for (int pos = 0; pos < message.length(); pos++) {
lcd.setCursor(0, row);
lcd.print(message.substring(pos, pos + kolom));
delay(delayTime);
}
}
void setup() {
lcd.init();
lcd.backlight();
pinMode(LEDM, OUTPUT);
pinMode(LEDK, OUTPUT);
pinMode(LEDH, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
digitalWrite(LEDM, HIGH);
TulisanBergerak(0, "Lampu Merah", 100, 16);
digitalWrite(LEDM, LOW);
digitalWrite(LEDK, HIGH);
TulisanBergerak(0, "Lampu Kuning", 100, 16);
digitalWrite(LEDK, LOW);
digitalWrite(LEDH, HIGH);
tone(buzzer, 1000);
TulisanBergerak(0, "Lampu Hijau", 100, 16);
noTone(buzzer);
digitalWrite(LEDH, LOW);
}