const uint8_t digit[] = {
//PGFEDCBA Segments 7-segment map:
0b00111111, // 0 "0" AAA
0b00000110, // 1 "1" F B
0b01011011, // 2 "2" F B
0b01001111, // 3 "3" GGG
0b01100110, // 4 "4" E C
0b01101101, // 5 "5" E C
0b01111101, // 6 "6" DDD
0b00000111, // 7 "7"
0b01111111, // 8 "8"
0b01101111 // 9 "9"
};
const uint8_t segmentPins[] = {7, 8, 2, 3, 4, 6, 5};// in simulator are resistors omitted
const uint8_t butPin = 12;
const uint8_t seg = 7;
void setup() {
for (uint8_t i = 0; i < seg; i++) pinMode(segmentPins[i], OUTPUT);
pinMode(butPin, INPUT_PULLUP);
display(0);
}
void display(uint8_t num) {
for (uint8_t i = 0; i < seg; i++)digitalWrite(segmentPins[i], digit[num] & (1 << i));
}
void loop() {
static uint8_t var = 0;
if (digitalRead(butPin) == LOW) {
var++;
if (var == 10)var = 0;
display(var);
delay(100);
while (digitalRead(butPin) == LOW);
delay(100);
}
}