// Define the segment pins
const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8};
// Digit patterns for 0-9 (common cathode)
const byte digitPatterns[] = {
B00111111, // 0
B00000110, // 1
B01011011, // 2
B01010111, // 3
B01100110, // 4
B01110101, // 5
B01111101, // 6
B00000111, // 7
B01111111, // 8
B01110111,// 9
};
void setup() {
// Set segment pins as output
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
// Count up from 0 to 9
for (int count = 0; count <= 9; count++) {
displayDigit(count);
delay(1000); // Wait for 1 second
}
// Count down from 9 to 0
for (int count = 9; count >= 0; count--) {
displayDigit(count);
delay(1000); // Wait for 1 second
}
}
void displayDigit(int digit) {
// Set the segments for the current digit
byte segments = digitPatterns[digit];
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], bitRead(segments, i));
}
}