// Urutan LED dalam seven segment
// angka pertama bagian tengah atas
// angka kedua bagian kanan atas
// angka ketiga bagian kanan bawah
// angka keempat bagian tengah bawah
// angka kelima bagian kiri bawah
// angka keenam bagian kiri atas
// angka ketujuh bagian tengah
// angka kedelapan 0 = off, 1 = on
const byte numeral[10] =
{
B11111100, // angka 0
B01100000, // angka 1
B11011010, // angka 2
B11110010, // angka 3
B01100110, // angka 4
B10110110, // angka 5
B10111110, // angka 6
B11100000, // angka 7
B11111110, // angka 8
B11110110 // angka 9
};
// pin dari segment dp,G,F,E,D,C,B,A
const int segmentPins[8] = {5, 9, 8, 7, 6, 4, 3, 2};
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
// seven segment akan memulai dari 0 sampai 9
// cara kerjanya sistem ditambah 1 dengan delay 1 detik dan ditambah 1
for (int i = 0; i < 10; i++) {
showDigit(i);
delay(1000);
}
delay(2000);
}
void showDigit(int number) {
bool isBitSet;
for (int segment = 0; segment < 8; segment++) {
if (number < 0 || number > 9) {
isBitSet = 0; // turn off all segments
} else {
// isBitSet will be true if given bit is 1
isBitSet = bitRead(numeral[number], segment);
}
isBitSet = !isBitSet; // Invert logic for common anode
digitalWrite(segmentPins[segment], isBitSet);
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
sevseg1:COM.1
sevseg1:COM.2
sevseg1:A
sevseg1:B
sevseg1:C
sevseg1:D
sevseg1:E
sevseg1:F
sevseg1:G
sevseg1:DP
sevseg2:COM.1
sevseg2:COM.2
sevseg2:A
sevseg2:B
sevseg2:C
sevseg2:D
sevseg2:E
sevseg2:F
sevseg2:G
sevseg2:DP
r1:1
r1:2