int button_s = 0;
int button_ls = 0;
int res;
int bt = 35;
// Define pins for segments
int a = 32, b = 33, c = 25, d = 26, e = 27, f = 14, g = 12;
void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(bt, INPUT);
Serial.begin(115200);
}
void loop() {
button_s = digitalRead(bt);
if (button_s != button_ls) {
// Debounce the button
delay(100);
button_s = digitalRead(bt);
if (button_s == HIGH) {
res = random(1, 7);
showNumber(res); // Display the number on 7-segment
}
}
button_ls = button_s;
}
void showNumber(int num) {
// Turn off all segments initially
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
// Turn on segments based on the number
switch (num) {
case 1:
digitalWrite(b, LOW);
digitalWrite(c, LOW);
break;
case 2:
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(g, LOW);
break;
case 3:
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(g, LOW);
break;
case 4:
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 5:
digitalWrite(a, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 6:
digitalWrite(a, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
}
}