//Example 3.9: Displays the numbers 0 - 9 on a 7-segment display and leds corresponding to segment
#define segA 21
#define segB 23
#define segC 4
#define segD 16
#define segE 17
#define segF 19
#define segG 18
#define segDP 2
#define led0 26
#define led1 25
#define led2 33
#define led3 32
#define led4 15
#define led5 0
#define led6 13
#define led7 12
#define led8 14
#define led9 27
// Define the digit patterns (0-9)
int digit0Pattern[7] = {1, 1, 1, 1, 1, 1, 0};
int digit1Pattern[7] = {0, 1, 1, 0, 0, 0, 0};
int digit2Pattern[7] = {1, 1, 0, 1, 1, 0, 1};
int digit3Pattern[7] = {1, 1, 1, 1, 0, 0, 1};
int digit4Pattern[7] = {0, 1, 1, 0, 0, 1, 1};
int digit5Pattern[7] = {1, 0, 1, 1, 0, 1, 1};
int digit6Pattern[7] = {1, 0, 1, 1, 1, 1, 1};
int digit7Pattern[7] = {1, 1, 1, 0, 0, 0, 0};
int digit8Pattern[7] = {1, 1, 1, 1, 1, 1, 1};
int digit9Pattern[7] = {1, 1, 1, 1, 0, 1, 1};
void setup() {
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
pinMode(segDP, OUTPUT);
pinMode(led0, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
}
void loop() {
for (int count = 0; count < 10; count++) {
if (count == 0) displayDigit(digit0Pattern), digitalWrite(led0, HIGH
), delay(1000), digitalWrite(led0, LOW);
else if (count == 1) displayDigit(digit1Pattern), digitalWrite(led1, HIGH), delay(1000), digitalWrite(led1, LOW);
else if (count == 2) displayDigit(digit2Pattern), digitalWrite(led2, HIGH), delay(1000), digitalWrite(led2, LOW);
else if (count == 3) displayDigit(digit3Pattern), digitalWrite(led3, HIGH), delay(1000), digitalWrite(led3, LOW);
else if (count == 4) displayDigit(digit4Pattern), digitalWrite(led4, HIGH), delay(1000), digitalWrite(led4, LOW);
else if (count == 5) displayDigit(digit5Pattern), digitalWrite(led5, HIGH), delay(1000), digitalWrite(led5, LOW);
else if (count == 6) displayDigit(digit6Pattern), digitalWrite(led6, HIGH), delay(1000), digitalWrite(led6, LOW);
else if (count == 7) displayDigit(digit7Pattern), digitalWrite(led7, HIGH), delay(1000), digitalWrite(led7, LOW);
else if (count == 8) displayDigit(digit8Pattern), digitalWrite(led8, HIGH), delay(1000), digitalWrite(led8, LOW);
else if (count == 9) displayDigit(digit9Pattern), digitalWrite(led9, HIGH), delay(1000), digitalWrite(led9, LOW);
delay(1000); // Wait for 1 second before showing the next digit
}
}
// Function to display a digit based on the array pattern passed to it
void displayDigit(int arr[]) {
digitalWrite(segA, arr[0]);
digitalWrite(segB, arr[1]);
digitalWrite(segC, arr[2]);
digitalWrite(segD, arr[3]);
digitalWrite(segE, arr[4]);
digitalWrite(segF, arr[5]);
digitalWrite(segG, arr[6]);
}