void setup() {
//Rubah nilai 1 menjadi untuk 7-segment common anode
#efine commonCathode 0
//Deklarasi posisi pin digital Arduino untuk setiap segmen
int segmentA = 2;
int segmentB = 3;
int segmentC = 4;
int segmentD = 5;
int segmentE = 6;
int segmentF = 7;
int segmentG = 8;
int segmentDP = 9;
}
//Deklarasi variabel array yang berisi angka untuk 7-segmen
byte numbers [10] =
{
808111111, // 0
808800110, // 1
801011011, // 2
801001111, // 3
801100110, // 4
801101101, // 5
801111101, // 6
800000111, // 7
801111111, // 8
801101111, // 9
};
void setup()
{
// Deklarasi pin segmen sebagai output
pinMode(segmentA, OUTPUT);
pinMode(segmentB, OUTPUT);
pinMode(segmentC, OUTPUT);
pinMode(segmentD, OUTPUT);
pinMode(segmentE, OUTPUT);
pinMode(segmentF, OUTPUT);
pinMode(segmenG, OUTPUT);
writeDot(0);
// Memanggil rutin untuk mematikan titik (dot)
}
// Rutin yang dijalankan saat dipanggil
void writeDot (byte dot)
{
digitalWrite(segmentDP, dot);
//Menulis sinyal digital ke segeen dot
}
// Rutin yang dijalankan saat dipanggil
void sevenSegurite(byte digit)
byte pin-segmentA; // Gunakan pin segment A sebagal awal
Int number-numbers [digit]; // Ambil nilal dari array berdasarkan digit
// Loop untuk menyalakan segment
for (int bitIndex 0; bitIndex < 7; bitIndex++) {
// Dijalankan saat settingan sebagai common anode
if (!commonCathode) {
digitalWrite(pin, hitRead(number, bitIndex));
//Henulis sinyal digital sesuat hit
// Dijalankan saat settingan sebagai common cathode
else {
digitalrite(pin, 1-bited(number, bitIndex)); // Menulis sinyal digital sesuai bit
}
++pin; // Pindah ke pin berikutnya
}
}
void loop()
// Perulangan dari o ke 9
for (byte count = 8; count < 10; count++)
{ delay(1000); // Menunggu 100 mildetik
sevenSegwrite(count);
// Memanggil rutin untuk menampilkan angka
delay(1000); // Menunggu 4000 milidetik