#include "SevSeg.h" // Mengimpor library SevSeg
SevSeg sevseg; // Membuat objek SevSeg
// Definisikan pin untuk LED
int ledMerah = 10;
int ledKuning = 11;
int ledHijau = 12;
void setup() {
// Inisialisasi pin LED
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledHijau, OUTPUT);
// Set seven-segment display untuk common anode
byte numDigits = 1; // Display menggunakan 1 digit
byte digitPins[] = {}; // Tidak ada digit pin karena hanya 1 digit
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8}; // Pin untuk segmen A-G
bool resistorsOnSegments = true; // True jika resistor terhubung ke segmen
byte hardwareConfig = COMMON_ANODE; // Konfigurasi untuk common anode
bool updateWithDelays = false;
bool leadingZeros = false; // Tidak perlu menampilkan nol di depan
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90); // Atur kecerahan
}
void loop() {
// Nyalakan LED merah selama countdown
digitalWrite(ledMerah, HIGH);
// Countdown dari 9 ke 0
countdown(9);
// Setelah countdown, matikan LED merah dan kuning, lalu nyalakan LED hijau
digitalWrite(ledKuning, LOW);
digitalWrite(ledHijau, HIGH);
// Tahan LED hijau selama 5 detik setelah countdown selesai
delay(5000);
digitalWrite(ledHijau, LOW);
}
// Fungsi countdown dari angka yang diberikan hingga 0
void countdown(int startNum) {
for (int i = startNum; i >= 0; i--) {
sevseg.setNumber(i); // Menampilkan angka di seven-segment display
sevseg.refreshDisplay(); // Refresh tampilan
// Ketika countdown mencapai 5 detik, nyalakan LED kuning
if (i == 5) {
digitalWrite(ledKuning, HIGH); // Nyalakan LED kuning
digitalWrite(ledMerah, LOW);
}
delay(1000); // Tunda 1 detik per angka
}
}