// Define the pin numbers for each segment (a, b, c, d, e, f, g)
int segmentPins[] = {2, 3, 4, 5, 6, 7, 8};
void setup() {
// Set the segment pins as OUTPUT
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
// Display numbers from 0 to 9 using a switch statement
for (int number = 0; number <= 9; number++) {
displayNumber(number);
delay(1000); // Display each number for 1 second
}
}
// Function to display a number on the 7-segment display using switch case
void displayNumber(int number) {
// Define the common cathode 7-segment display patterns for numbers 0 to 9
byte patterns[] = {
B00111111, // 0
B00000110, // 1
B01011011, // 2
B01001111, // 3
B01100110, // 4
B01101101, // 5
B01111101, // 6
B00000111, // 7
B01111111, // 8
B01101111 // 9
};
// Check if the number is within the valid range (0 to 9)
if (number >= 0 && number <= 9) {
// Display the number by setting the corresponding segments using switch case
for (int segment = 0; segment < 7; segment++) {
if (bitRead(patterns[number], segment)) {
digitalWrite(segmentPins[segment], HIGH);
} else {
digitalWrite(segmentPins[segment], LOW);
}
}
}
}