const int segmentPins[8] = {2, 3, 4, 5, 6, 7, 8, 9};
const int buttonPin = 10;
const byte numbers[10] = {
B00000010, // 0
B11111001, // 1
B01001000, // 2
B01100000, // 3
B11011001, // 4
B10010010, // 5
B00000010, // 6
B11111000, // 7
B00000000, // 8
B10000000 // 9
};
int buttonState;
int lastButtonState = LOW;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
int displayedNumber = 0;
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
}
pinMode(buttonPin, INPUT);
}
void loop() {
int reading = digitalRead(buttonPin);
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState && reading == HIGH) {
displayedNumber = (displayedNumber + 1) % 10;
showNumber(displayedNumber);
}
buttonState = reading;
}
lastButtonState = reading;
}
void showNumber(int number) {
for (int i = 0; i < 8; i++) {
digitalWrite(segmentPins[i], bitRead(numbers[number], i));
}
}