Problema con arrays

Cuando subo este codigo ni si quiera lee los valores del potenciometro pero cuando lo hago de la manera facil (mediante ocho mil digitalWrites) funciona perfectamente el programa.
Dejo aqui el codigo para que le echeis un vistazo (consiste en un potenciometro que controla un display de 7 leds):

const int pot = A0;
const int numeros = 9;
const int numeroLeds = 7;
const int leds[8] = {2, 3, 4, 5, 6, 7, 8, 9};
const int n1[2] = {6, 4};
const int n2[5] = {7, 6, 9, 2, 3};
const int n3[5] = {7, 6, 9, 4, 3};
const int n4[4] = {8, 9, 6, 4};
const int n5[5] = {7, 8, 9, 4, 3};
const int n6[6] = {7, 8, 9, 2, 3, 4};
const int n7[3] = {7, 6, 4};
const int n8[7] = {2, 3, 4, 6, 7, 8, 9};
const int n9[6] = {2, 3, 4, 7, 8, 9};
int numerosupremo[9] = {n1[2], n2[5], n3[5], n4[4], n5[5], n6[6], n7[3], n8[7], n9[6]};
int valor;
int lectura;
int i;

void setup() {
 Serial.begin(9600);
  for (int i = 0; i < numeros; i = i + 1) 
    pinMode(leds[i], OUTPUT);
  
}

void loop() {
  Serial.print("valor : ");
  Serial.println(valor);
  int lectura = analogRead(pot);
  int valor = map(lectura, 0, 1023, 0, 10);
  for (int i = 0; i < numeros; i++) {
    if (i < valor) {
      digitalWrite(numerosupremo[i], HIGH);
    }
    else {
      digitalWrite(numerosupremo[i], LOW);
    }
  }
}
void setup() {
 Serial.begin(9600);
  for (int i = 0; i < numeros; i = i + 1) 
    pinMode(leds, OUTPUT);
  
}

Ups; es un "array", no una única variable. Corrije la siguiente línea:

pinMode(leds[i], OUTPUT);

Lo mismo aquí:

if (i < valor) {
      digitalWrite(numerosupremo[i], HIGH);
    }
    else {
      digitalWrite(numerosupremo[i], LOW);
    }

Y por último, lee las reglas y corrije tu primer post como corresponde.

Ya he editado el post y tambien he cambiado el codigo pero sigue igual :slightly_frowning_face:

Borra estas tres líneas que están antes del setup:

int valor;
int lectura;
int i;

El principio del loop debe quedar así:

void loop() {
  int lectura = analogRead(pot);
  int valor = map(lectura, 0, 1023, 0, 10);
  Serial.print("valor : ");
  Serial.println(valor);
  // El resto se queda igual

Cuando dices que no te funciona, creo que es por error de compilación (intentar declarar tres variables con el mismo nombre).
La próxima vez que digas que "el código sigue igual", por favor especifica en qué sentido. Tuviste suerte de que fue fácil adivinarlo.

Muchas gracias, ahora me da todos los valores que necesito pero me acabo de dar cuenta de un fallo estructural que tiene el codigo que es lo que hace que no funcione. Supongo que tendre que rehacerlo.