problema con analogRead y pulsadores


hola! tengo este problema tengo 7 pulsadores que no me funcionan bien. el codigo simplificaddo es este. mi problema esque cuando se le da al primer pulsador(a0) el resto recogen su valor.... llegado pensar que el arduino esta jodido pero con el polimetro me dice que hay continuidaddesde la entrada del switch al pin. por lo que los cables y la propia placa esta bien.

he leido que se puede hacer con una unica entrada y un divisor de tension.... pero me gustaria probar hacerlo asi... con 6 pines seleccionados. por lo menos en la primera version.

llevo unos dias que en mis ratos libre me devano la cabeza buscando el fallo... pero no lo encuentro... me podeis echar una mano! gracias

[int cero = a0;            //pulsador de arranque
int uno=a1;
int dos=a2;
int tres=a3;
int cuatro=a4;
int cinco=a5;
int seis=5;



int val0;
int val1;
int val2;
int val3;
int val4;
int val5;
int val6;




void setup() {
  // put setup code here, run once:
 
   cero = 0;            //pulsador de arranque
 uno=0;
 dos=0;
 tres=0;
 cuatro=0;
 cinco=0;

 val0=0;
  val1=0;
  val2=0;
  val3=0;
  val4=0;
  val5=0;
   pinmode(cero, input);   
   pinmode(uno,input);
      pinmode(dos, input);   
   pinmode(tres, input);   
   pinmode(cuatro, input);   
   pinmode(cinco, input);   
   pinmode(seis, input);   


     serial.begin(9600);
}

void loop() {
  // put main code here, run repeatedly:
 
  val0=analogread(cero);
    serial.print(" val0 ");
    float voltaje0 = val0 * (5.0 / 1023.0);
    serial.print(voltaje0);
 
   val1=analogread(uno);
 
    serial.print(" val1 ");
      float voltaje1 = val1 * (5.0 / 1023.0);
    serial.print(voltaje1);
   
     val2=analogread(dos);
 
    serial.print(" val2 ");
   float voltaje2 = val2 * (5.0 / 1023.0);
    serial.print(voltaje2);
   
   
     val3=analogread(tres);
 
    serial.print(" val3 ");
   float voltaje3 = val3 * (5.0 / 1023.0);
    serial.print(voltaje3);
   
     val4=analogread(cuatro);
 
    serial.print(" val4 ");
    float voltaje4 = val4 * (5.0 / 1023.0);
    serial.print(voltaje4);
   
    val5=analogread(cinco);
 
    serial.print(" val5 ");
    float voltaje5 = val5 * (5.0 / 1023.0);
    serial.print(voltaje5);
   
   
     serial.print(" val6 ");
    float voltaje6 = val6 * (5.0 / 1023.0);
    serial.println(voltaje6);
    delay(1500);
   
   






}

es todo un sin sentido. defines las variables

code: [select]
int cero = a0;            //pulsador de arranque
int uno=a1;
int dos=a2;
int tres=a3;
int cuatro=a4;
int cinco=a5;
int seis=5;


que ya no tiene mucho sentido, porque ya me diras que entero es a0 o a1...

pero mas adelante las pones todas 0!!!!

code: [select]
   cero = 0;            //pulsador de arranque
 uno=0;
 dos=0;
 tres=0;
 cuatro=0;
 cinco=0;


defines los pines como input, para luego hacer un analogread con pulsadores. si usas pulsadores, y defines los pins como input, usa digitalread.

no le veo el sentido usar variables para definir pins. escrives mucho mas, y si encima , las defines mal, es un desastre.

por ultimo, los pulsadores, ¿les has puesto resistencias pulldown?


Arduino Forum > International > EspaƱol (Moderators: surbyte, Hector_A) > problema con analogRead y pulsadores


arduino

Comments