/* Digit table for the 7-segment display */
const uint8_t digitTable[] = {
0b11000000,
0b11111001,
0b10100100,
0b10110000,
0b10011001,
0b10010010,
0b10000010,
0b11111000,
0b10000000,
0b10010000,
};
int btnUP = A0;
int btnDOWN = A1;
// bits for the 7-segment
int bits[7] = {0};
int value = 0;
void setup() {
// set up all 7-segment
for(short int i=0; i < 7;i++){
pinMode(i, OUTPUT);
}
pinMode(btnUP, INPUT_PULLUP);
pinMode(btnDOWN, INPUT_PULLUP);
extractByte(digitTable[value],bits);
write7seg(bits);
}
void loop() {
if(digitalRead(btnUP) == LOW){
if(value < 9){
value++;
}
delay(200);
}
if(digitalRead(btnDOWN) == LOW){
if(value > 0){
value--;
}
delay(200);
}
extractByte(digitTable[value],bits);
write7seg(bits);
}
void write7seg(int *bits){
for(short int i=0; i < 7;i++){
digitalWrite(i, bits[i]);
}
}
void extractByte (unsigned char Byte, int *bits) {
for (short int i = 0; i < 7; i++) {
bits[i] = (Byte >> i) & 0x01;
}
}