Hola Vicente, tu código tiene varios errores, pero antes de entrar en ellos quisiera saber si tu circuito electrónico funciona bien.
Me refiero a que si identificaste cada uno de los segmentos de tu display (a, b, c... g), conectaste una resistencia de 330 ohms hacia los pines correctos del 7448 (a, b, c... g), los pines 3, 4, 5 y 16 a +5V y el pin 8 a GND.
const byte A=13, B=12, C=11, D=10;
const byte display1[4]={A,B,C,D};
byte randNumber;
void setup() {
randomSeed(analogRead(0));
for (byte i=0; i<4; i++){
pinMode(display1[i], OUTPUT);
}
}
void loop() {
randNumber = random(10);
numeros(randNumber);
delay(500);
}
void numeros(byte a){
switch (a){
case 0:
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
break;
case 1:
digitalWrite(A,HIGH);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
break;
case 2:
digitalWrite(A,LOW);
digitalWrite(B,HIGH);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
break;
case 3:
digitalWrite(A,HIGH);
digitalWrite(B,HIGH);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
break;
case 4:
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,HIGH);
digitalWrite(D,LOW);
break;
case 5:
digitalWrite(A,HIGH);
digitalWrite(B,LOW);
digitalWrite(C,HIGH);
digitalWrite(D,LOW);
break;
case 6:
digitalWrite(A,LOW);
digitalWrite(B,HIGH);
digitalWrite(C,HIGH);
digitalWrite(D,LOW);
break;
case 7:
digitalWrite(A,HIGH);
digitalWrite(B,HIGH);
digitalWrite(C,HIGH);
digitalWrite(D,LOW);
break;
case 8:
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,HIGH);
break;
case 9:
digitalWrite(A,HIGH);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,HIGH);
}
}
Hay una función bit a bit que te podría simplificar tremendamente tu código: Se trata de bitRead(variable,bit) que lee un bit de la variable dada y devuelve un 0 o un 1 según el caso. Recuerda que el bit menos significativo es el 0 que corresponde a tu variable A.
for (byte i=0; i<4; i++){
digitalWrite(display1[i], bitRead(randNumber, i));
}