const byte numeral[13] = {
//0 = led dalam seven segment yang tidak diberikan tegangan
//1 = led dalam seven segment yang diberikan tegangan masukan
B01101111, //H
B11101111, //a
B10001101, //r
B00011101, //l
B10011111, //e
B01110111, //y
B11110111, //g
B00001101, //i
B00011101, //l
B00111111, //b
B10011111, //e
B10001101, //r
B11100001, //t
};
// 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 will start from 0 to 10
// The system increments by 1 with a delay of 1 second
for (int i = 0; i <= 13; i++) {
showDigit(i);
delay(1000);
}
delay(2000);
}
void showDigit(int number) {
boolean isBitSet;
for (int segment=1;segment < 8; segment++)
{
if (number < 0 || number > 12)
{
isBitSet=0;
}
else
{
isBitSet = bitRead(numeral[number], segment);
}
isBitSet=!isBitSet;
digitalWrite(segmentPins[segment], isBitSet);
}
}