Display 7 Segmentos

Buenas compañeros. Estaba probando el display (5161AS) y para mi sorpresa no se me muestran todos los leds, la idea era hacer un simple dado. Os adjunto el código y las conexiones para ver que puede haber fallado...

// Constantes pines
#define PULSADOR 10
// Array multidimensional para mostrar los números
byte  numero[10][8] =
{
{ 1, 1, 1, 1, 1, 1, 0, 0 }, // 0
{ 0, 1, 1, 0, 0, 0, 0, 0 }, // 1
{ 1, 1, 0, 1, 1, 0, 1, 0 }, // 2
{ 1, 1, 1, 1, 0, 0, 1, 0 }, // 3
{ 0, 1, 1, 0, 0, 1, 1, 0 }, // 4
{ 1, 0, 1, 1, 0, 1, 1, 0 }, // 5
{ 1, 0, 1, 1, 1, 1, 1, 0 }, // 6
{ 1, 1, 1, 0, 0, 0, 0, 0 }, // 7
{ 1, 1, 1, 1, 1, 1, 1, 0 }, // 8
{ 1, 1, 1, 0, 0, 1, 1, 0 } // 9
};
void setup() {
// Iniciamos el monitor serie
Serial.begin(9600);
// Ponemos los pines de los segmentos en modo OUTPUT (salida)
for (int i = 2; i < 10; i++)
{
pinMode(i, OUTPUT);
}
// Ponemos el pin del pulsador en modo INPUT (entradda)
pinMode(PULSADOR, INPUT);
//Establecemos la semilla fija
randomSeed(analogRead(A0));
}
void loop() {
// Leemos el valor del pulsador
int valor = digitalRead(PULSADOR);
// Si está pulsado
if (valor == HIGH)
{
//Genera un numero aleatorio entre 1 y 6
int randomNumber = random(1, 7);
// Ponemos los pines en estado correcto para mostrar el número randomNumber
for (int e = 0; e < 8; e++)
{
digitalWrite(e + 2, numero[randomNumber][e]);
}
delay(500);
}
}

DADO-ELECTRICO-CATODO-COMUN.png




Que digitos no se ven? No son dígitos si no segmentos.
Solo busca tu display y asegúrate de ver que pin corrresonde a cada segumentos

El código luce bien!!

Por cierto de las imagenes posteadas puede decirte que esta muy mal conectado.


Tal vez esta disposición sea correcta.

NOTA: mira el privado que te envié y trabaja para que cada imagen se vea como la que yo ya te edite.

Las conexiones están exactamente igual que en la imagen que puse. ¿Cuál puede ser el problema?

Por tus conexiones parece ser un Cátodo común.
Y algo tan simple como fijar un número en lugar de un random por ejemplo pon el 8 para que se ilumine todo el display y ve conectando segmento por segmento.
Esto es lo que tienes ahora

//a b c d e f g dp
//5 6 7 3 2 4 9 8

y esta obviamente mal
g y dp estan mal, en principio como minimo deben ser al revés.

dp o decimal point esta en 0 y debe ser el ultimo pin o sea 9
g debe estar en secuencia o sea ser el 8

ahora de solo mirar la secuencia es a b c d e f g dp o sea 2 3 4 5 6 7 8 9 porque esta todo cruzado?

Como dije, cambia esto en tu código por un instante

int randomNumber = random(1, 7);
randomNumber = 8;

solo mostrará el 8.
Ahora desconecta todos los segmentos. Mira el display y conecta pin 2 al segmento a y asi en adelante