//Agnes Feren Avelita
//XII-F5
//2
const byte numeral [10] =
{
// 0 = led dalam seven segment yang tidak diberikan tagangan
// 1 = led dalam seven segment yang diberikan tagangan masukan
B11111101, // angka 0
B01100001, // angka 1
B11011011, // angka 2
B11110011, // angka 3
B01100111, // angka 4
B10110111, // angka 5
B00111111, // angka 6
B11100001, // angka 7
B11111111, // angka 8
B11100111, // 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 10
//cara kerjanya sistem ditambah 1 dengan delay 1 detik dan ditambah 1 dengan delay 1 detik sampai batas nilai 10.
for(int i=0; i <= 10; i++)
{
showDigit(i) ;
delay(800) ;
}
delay(500);
}
void showDigit ( int number)
{
boolean isBitSet;
for (int segment = 1; 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; //
digitalWrite( segmentPins[segment], isBitSet);
}
}