#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void angka5() {
digitalWrite(22, 1);
digitalWrite(23, 0);
digitalWrite(24, 1);
digitalWrite(25, 1);
digitalWrite(26, 0);
digitalWrite(27, 1);
digitalWrite(28, 1);
digitalWrite(29, 0);
}
void angka1() {
digitalWrite(22, 0);
digitalWrite(23, 1);
digitalWrite(24, 1);
digitalWrite(25, 0);
digitalWrite(26, 0);
digitalWrite(27, 0);
digitalWrite(28, 0);
digitalWrite(29, 0);
}
void angka9() {
digitalWrite(22, 1);
digitalWrite(23, 1);
digitalWrite(24, 1);
digitalWrite(25, 1);
digitalWrite(26, 0);
digitalWrite(27, 1);
digitalWrite(28, 1);
digitalWrite(29, 0);
}
void angka0() {
digitalWrite(22, 1);
digitalWrite(23, 1);
digitalWrite(24, 1);
digitalWrite(25, 1);
digitalWrite(26, 1);
digitalWrite(27, 1);
digitalWrite(28, 0);
digitalWrite(29, 0);
}
void setup() {
lcd.init();
lcd.backlight();
lcd.begin(16, 2);
pinMode(22, OUTPUT);
pinMode(23, OUTPUT);
pinMode(24, OUTPUT);
pinMode(25, OUTPUT);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
pinMode(28, OUTPUT);
pinMode(29, OUTPUT);
Serial.begin(9600);
Serial.println("Mikrokontroler : 23.11.5901");
}
void loop() {
if (Serial.available()) {
String command = Serial.readStringUntil('\n');
command.trim();
if (command.equalsIgnoreCase("start")) {
displaySevenSegment();
displayLCDCountdown();
}
}
}
void displaySevenSegment() {
angka5();
delay(1000);
angka9();
delay(1000);
angka0();
delay(1000);
angka1();
delay(1000);
clearSegments(); // Matikan semua segmen setelah menampilkan "5901"
}
void clearSegments() {
digitalWrite(22, 0);
digitalWrite(23, 0);
digitalWrite(24, 0);
digitalWrite(25, 0);
digitalWrite(26, 0);
digitalWrite(27, 0);
digitalWrite(28, 0);
digitalWrite(29, 0);
}
void displayLCDCountdown() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(byte(0));
lcd.write(byte(1));
lcd.write(byte(2));
lcd.setCursor(0, 1);
lcd.write(byte(3));
lcd.write(byte(4));
lcd.write(byte(5));
lcd.setCursor(4, 0);
lcd.print("Michael"); // Display first name
lcd.setCursor(0, 1);
lcd.write(byte(0));
lcd.write(byte(1));
lcd.write(byte(2));
for (int i = 10; i >= 0; i--) {
lcd.setCursor(4, 1); // Set cursor to show count in the second line
lcd.print(" ");
lcd.setCursor(4, 1);
lcd.print(i); // Display countdown
Serial.print("Count: ");
Serial.println(i); // Show countdown on Serial Monitor
delay(1000);
}
}