// Define the pins for each segment of the displays
const int segmentPins[2][7] = {
{2, 3, 4, 5, 6, 7, 8}, // Pins for the first display
{9, 10, 11, 12, 13, A0, A1} // Pins for the second display
};
// Define patterns to display digits 0-9
const byte digitPatterns[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
void setup() {
// Set the segment pins as outputs
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 7; j++) {
pinMode(segmentPins[i][j], OUTPUT);
}
}
}
void loop() {
// Display numbers 00-99 simultaneously
for (int i = 0; i < 100; i++) {
int tens = i / 10; // Get the tens digit
int ones = i % 10; // Get the ones digit
// Display tens digit on the first display
displayNumber(tens, 0);
// Display ones digit on the second display
displayNumber(ones, 1);
delay(1000); // Delay for 1 second
}
}
void displayNumber(int num, int displayIndex) {
// Set the segments for the given display
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[displayIndex][i], digitPatterns[num][i]);
}
}