int G = 13; // A Pin # (G)
int F = 12; // B Pin # (F)
int A = 11; // C Pin # (A)
int B = 10; // D Pin # (B)
int E = 9; // E Pin # (DP)
int D = 8; // F Pin # (C)
int C = 7; // G Pin # (D)
int DP = 6; // DP Pin #(E)
int ButtonPin = 5; // Input button pin number
void setup() {
pinMode(ButtonPin, INPUT);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(DP, OUTPUT);
}
void loop() {
// Read the state of the button
int buttonState = digitalRead(ButtonPin);
// Check if the button is pressed (transition from HIGH to LOW)
if (buttonState == HIGH) {
// Generate a random number between 0 and 9
int randomNum = random(0, 10);
// Display the random number on the 7-segment display
displayNumber(randomNum);
// Delay for 1000ms (1 second)
delay(500);
// Turn off all segments after the delay
turnOffSegments();
}
}
// Function to display a number on the 7-segment display
void displayNumber(int num) {
// Implement your logic to control the individual segments based on the number
// You may need to create a mapping between numbers and the corresponding segments
// For simplicity, you can directly control the segments based on the number
switch (num) {
case 0:
// Set the appropriate segments for displaying 0
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
break;
case 1:
// Set the appropriate segments for displaying 1
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, LOW);
break;
case 2:
// Set the appropriate segments for displaying 2
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(DP, LOW);
break;
case 3:
// Set the appropriate segments for displaying 3
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(DP, LOW);
break;
case 4:
// Set the appropriate segments for displaying 4
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, LOW);
break;
case 5:
// Set the appropriate segments for displaying 5
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, LOW);
break;
case 6:
// Set the appropriate segments for displaying 6
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, LOW);
break;
case 7:
// Set the appropriate segments for displaying 7
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, LOW);
break;
case 8:
// Set the appropriate segments for displaying 8
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, LOW);
break;
case 9:
// Set the appropriate segments for displaying 9
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, LOW);
break;
default:
// Turn off all segments if the number is out of range
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, LOW);
break;
}
}
// Function to turn off all segments
void turnOffSegments() {
// Turn off all segments
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, LOW);
}