int D1 = 3, D2 = 4, D3 = 5, D4 = 6, A = 13, B = 12, C = 11, D = 10, E = 9, F = 8, G = 7, DP = 2;
int digitPins[] = {D1, D2, D3, D4};
int segmentPins[] = {A, B, C, D, E, F, G, DP};
int count = 0;
int displayDigits[] = {rand() % 10, rand() % 10, rand() % 10, rand() % 10};
const String digits[]={"11111100","01100000","11011010","11110010","01100110","10110110","10111110","11100000","11111110","11110110","1100111","1110111","1111100","0111001","1011110","1111001","1110001"};
void display(int t) {
int a = 0;
while (a < t) {
for (int i = 0; i < 4; i++) {
digitalWrite(digitPins[i], HIGH);
}
for (int i = 0; i < 8; i++) {
if (digits[displayDigits[count]].charAt(i) == '1') {
digitalWrite(segmentPins[i], HIGH);
} else {
digitalWrite(segmentPins[i], LOW);
}
}
for (int i = 0; i < 4; i++) {
if (i == count) {
digitalWrite(digitPins[i], LOW);
} else {
digitalWrite(digitPins[i], HIGH);
}
}
if (count > 3) {
count = 0;
} else {
count++;
}
a++;
}
}
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(digitPins[i], OUTPUT);
digitalWrite(digitPins[i], HIGH);
}
for (int i = 0; i < 8; i++) pinMode(segmentPins[i], OUTPUT);
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 4; i++) {
displayDigits[i] = rand()%10;
}
display(20000);
}