int pinLED[] = {2, 3, 4, 5, 6, 7, 8, 9};
int jumlahPin = 8;
lcd.begin(16, 2);
byte arrowRear[8] = {
B10010,
B01001,
B00100,
B00010,
B00010,
B00100,
B01001,
B10010,
};
byte batangKiri[8] = {
B00000,
B00000,
B10000,
B01111,
B01111,
B10000,
B00000,
B00000,
};
byte loveKiri[8] = {
B00100,
B01110,
B11111,
B11111,
B01111,
B00111,
B00011,
B00001,
};
byte loveKanan[8] = {
B00100,
B01110,
B11111,
B11111,
B11110,
B11100,
B11000,
B10000,
};
byte batangKanan[8] = {
B00000,
B00000,
B00000,
B11111,
B11111,
B00000,
B00000,
B00000,
};
byte arrowHead[8] = {
B10000,
B11000,
B11100,
B11111,
B11111,
B11100,
B11000,
B10000,
};
lcd.createChar(0, arrowRear);
lcd.createChar(1, batangKiri);
lcd.createChar(2, loveKiri);
lcd.createChar(3, loveKanan);
lcd.createChar(4, batangKanan);
lcd.createChar(5, arrowHead);
lcd.setCursor(5, 0);
lcd.write(byte(0));
lcd.setCursor(6, 0);
lcd.write(byte(1));
lcd.setCursor(7, 0);
lcd.write(byte(2));
lcd.setCursor(8, 0);
lcd.write(byte(3));
lcd.setCursor(9, 0);
lcd.write(byte(4));
lcd.setCursor(10,0);
lcd.write(byte(5));
lcd.setCursor(3, 1);
lcd.print("Kelompok03");
byte angka[11] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111, // 9
0b10000000 // titik
};
bool startDisplay = false;
void setup() {
for (int x = 0; x < jumlahPin; x++) {
pinMode(pinLED[x], OUTPUT);
}
Serial.begin(9600);
Serial.println("Mikrokontroler : 23.11.5901");
}
void loop() {
if (Serial.available() > 0) {
String input = Serial.readStringUntil('\n');
// Jika input adalah "start", aktifkan startDisplay
if (input.equalsIgnoreCase("start")) {
startDisplay = true;
}
}
// Jika startDisplay aktif, tampilkan angka 5901 satu kali
if (startDisplay) {
tampilkanAngka(5);
delay(1000);
tampilkanAngka(9);
delay(1000);
tampilkanAngka(0);
delay(1000);
tampilkanAngka(1);
delay(1000);
// Matikan startDisplay agar tidak mengulang
startDisplay = false;
// Bersihkan 7 segment setelah selesai menampilkan 5901
clearSegment();
}
}
void tampilkanAngka(int num) {
byte digit = angka[num];
for (int i = 0; i < jumlahPin; i++) {
digitalWrite(pinLED[i], bitRead(digit, i));
}
}
void clearSegment() {
for (int i = 0; i < jumlahPin; i++) {
digitalWrite(pinLED[i], LOW);
}
}