// 7-segment pins (a, b, c, d, e, f, g)
int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8};
// Segment patterns for digits 0–9
// Format: {a, b, c, d, e, f, g}
byte digits[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
};
// Function to display a digit on the 7-seg
void displayDigit(int num) {
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], digits[num][i]);
}
}
// Dice roll function (returns 1–6)
int rollDice() {
return random(1, 7); // random number between 1 and 6
}
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
randomSeed(analogRead(A0)); // random seed from floating pin
}
void loop() {
int diceValue = rollDice(); // get random dice value
displayDigit(diceValue); // show on 7-seg
delay(1000); // wait 1 second
}