int segPins[7] = {8,7,6,5,4,3,2}; // reverse order
int buttonPin = 9;
int lastNumber = 0;
// Segment patterns for numbers 1–6 (a,b,c,d,e,f,g)
byte numbers[6][7] = {
{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
};
void setup() {
for(int i=0;i<7;i++){
pinMode(segPins[i], OUTPUT);
}
pinMode(buttonPin, INPUT_PULLUP);
randomSeed(analogRead(0)); // randomness
}
void displayNumber(int num) {
for(int i=0;i<7;i++){
digitalWrite(segPins[i], numbers[num-1][i]);
}
}
void loop() {
if(digitalRead(buttonPin) == LOW) {
int newNumber;
do {
newNumber = random(1,7);
} while(newNumber == lastNumber); // no repeat
lastNumber = newNumber;
displayNumber(newNumber);
delay(300); // debounce
}
}