// Pin-pins yang terhubung ke 7 segmen
const int segmentPins[] = {22, 23, 24, 25, 26, 27, 28, 29};
// Definisi digit-digits untuk menampilkan angka (common anode)
const byte digits[] = {
B11000000, // 0
B11111001, // 1
B10100100, // 2
B10110000, // 3
B10011001, // 4
B10010010, // 5
B10000010, // 6
B11111000, // 7
B10000000, // 8
B10010000, // 9
B01111111, //10 = menampilkan "."
B11111111 //11 = mati 1 detik agar keliatan jeda saat beralih ke angka yang sama
};
// Jumlah digit pada 7 segmen
const int numDigits = sizeof(segmentPins) / sizeof(segmentPins[0]);
void setup() {
// Inisialisasi pin 7 segmen sebagai OUTPUT
for (int i = 0; i < numDigits; i++) {
pinMode(segmentPins[i], OUTPUT);
digitalWrite(segmentPins[i], HIGH); // Matikan semua digit awalnya (common anode)
}
}
void loop() {
// Angka yang akan ditampilkan
const byte numbers[] = {2, 11, 2, 10, 1, 11, 1, 10, 5, 0, 7, 3}; // Angka 22.11.5073
for (int i = 0; i < sizeof(numbers); i++) {
// Tampilkan digit ke-i
displayDigit(numbers[i]);
delay(1000); // Tunggu 1 detik
}
}
void displayDigit(byte number) {
for (int i = 0; i < numDigits; i++) {
// Mengatur bit-bit pada digit ke-i berdasarkan angka yang akan ditampilkan (common anode)
byte bitPattern = digits[number];
digitalWrite(segmentPins[i], bitRead(bitPattern, i));
}
}