Duda con primer programa en arduino

Buenas gente, soy nueva en el foro así que mis disculpas si todavía no me manejo bien. Empece a incursionar en arduino ya que antes trabajaba con pics, el tema es el siguiente, hice una secuencia que me debería tirar números aleatorios, restringidos al intervalo (6-10) y según el numero que tire es el puerto que se activa para que enciende un led. Lo probé con el monitor serial y anda barbaro, muestra todos los numeros del intervalo, pero a la hora de probarlo en proto encienden solamente los leds de puertos 6 y 7 los otros no. Obvio verifique que los leds no estuvieran quemados y probe en arduino pro mini y con un leonardo, en ambos casos es igual.

No tengo idea de por donde buscar la falla, dejo el codigo a ver si alguien me puede ayudar o tirar algún consejo. Gracias!

int f6=6;
int f7=7;
int f8=8;
int f9=9;

int pin[]={6,7,8,9};
int x;
int PinRand;

void setup()
{
Serial.begin (9600);
randomSeed(analogRead(3));
pinMode(f6,OUTPUT);
pinMode(f7,OUTPUT);
pinMode(f8,OUTPUT);
pinMode(f9,OUTPUT);

}
void loop ()
{

PinRand=random(6,10);
Serial.print(PinRand);
x= pin[PinRand];
digitalWrite (x,1);
delay (1000);
digitalWrite (x,0);
delay (5000);

}

Aclaro una cosa, el intervalo lo hice del (6-10) pese a que no declaro pin 10 porque originalmente era (6-9) y el 9 nunca salia, al ampliar el rango en 1 logre que apareciera. Igualmente verifique si en esas instancias donde no prende ningún led no fuera el puerto 10 que se activa pero tampoco. De los 5 puertos solo 2 andan pese a que el monitor serial me muestra que salen numeros del 6 al 9.

Veamos tu código

 void loop ()
 {
   
  PinRand=random(6,10);
  Serial.print(PinRand);
  x= pin[PinRand];
  digitalWrite (x,1);
  delay (1000);
  digitalWrite (x,0);
  delay (5000);
 }

1ro. Los códigos se ponen usando tags o etiquetas. Tag para código (</>)
Tu programa dice
Numeros random en 6 y 9

PinRand=random(6,10);

los imprimes por monitor serie, y lee 6, 7 8 o 9 segun salgan
luego pones

x= pin[PinRand];

y que ocurre? Pretendes que direccione x = pin[6]; cuando no existe porque definiste 4 elementos de 0,1,2, y 3. El valor es 6, 7, 8 o 9 la dirección del vector es 0 a 3.
pin[0] = 6
pin[1]= 7
pin[2] = 8
pin[3] = 9

Ves el error?
Sabes como corregirlo?
Simplemente resta 6 a tu asignación del índice del vector pin[]

x= pin[PinRand-6];

Tenias razon! que genio, dos horas buscando ese error, de hecho esa variable como que sobraba, directamente la elimine y funciono. Dejo por si a alguien le sirve como quedo

int f6=6;
int f7=7;
int f8=8;
int f9=9;

int x;
int PinRand;

void setup()
{
Serial.begin (9600);
randomSeed(analogRead(3));
pinMode(f6,OUTPUT);
pinMode(f7,OUTPUT);
pinMode(f8,OUTPUT);
pinMode(f9,OUTPUT);

}
void loop ()
{

PinRand=random(6,10);
Serial.print(PinRand);
x=PinRand;
Serial.print (x);
digitalWrite (x,1);
delay (1000);
digitalWrite (x,0);
delay (5000);

}

Gracias!

Como pago por mi ayuda, lee las normas del foro y edita tus códigos. Estan sin etiquetas.