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);
}
}
}