const byte numeral[26] =
{
//0 = led dalam seven segment yang tidak diberikan tagangan
//1 = led dalam seven segment yang diberikan tagangan masukan
B11101111, // angka A (fungsinya untuk menentukan bagian mana saja yang hidup)
B11111111, // angka B
B10011101, // angka C
B11111101, // angka D
B10011111, // angka E
B10001111, // angka F
B10111101, // angka G
B00101111, // angka H
B01100001, // angka I
B01111001, // angka J
B01101111, // K
B00011101, // L
B01101111, // M
B11101101, // N
B11111101, // O
B11001111, // P
B11100111, // Q
B11101111, // R
B10110111, // S
B00011111, // T
B01111101, // U
B01111101, // V
B01101111, // W
B01101111, // X
B01110111, // Y
B10110111, // Z
};
//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 10
//cara kerjanya sistem ditambah 1 dengan delay 1 detik dan ditambah
for(int i=0; i <= 26; i++)
{
showDigit(i);
delay(1000);
}
delay(2000);
}
void showDigit(int number)
{
boolean isBitSet;
for(int segment = 1; segment < 8; segment++)
{
if(number < 0 || number > 25)
{
isBitSet = 0; //turn off all segments
}
else
{
//isBitSet will be true if given bit is 1
isBitSet = bitRead(numeral[number], segment);
}
isBitSet = !isBitSet;
digitalWrite(segmentPins[segment], isBitSet);
}
}