Uso de While con vectores

Hola a todos. Estoy teniendo un problema con el siguiente codigo, y queria saber si alguien me puede ayudar. La idea del programa es que realice ciertras instrucciones segun lo que tenga en las entradas. El tema es que no se si es valido escribir el while como lo hice. Paso el ejemplo:

int in[2]={3,4};
const int n=0;
const int i=0;
const int h=0;

void setup()
{
pinMode(3,INPUT);
pinMode(4,INPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}

void chequeo()
{
int i=0;
for (int i=0;i<2;i++){
in = digitalRead(i);

  • }*

}
void loop() {

  • while (in[2]==(HIGH,HIGH))*
  • for (int n=0;n<4;n++){*
  • digitalWrite (8,HIGH);*
  • delay(4000);*
  • digitalWrite (8,LOW);*
  • delay(4000);*
  • chequeo ();}*
  • while (in[2]==(HIGH,LOW))*
  • for (int h=0;h<4;h++){*
  • digitalWrite (9,HIGH);*
  • delay(4000);*
  • digitalWrite (9,LOW);*
  • delay(4000);*
  • chequeo ();*
  • }*
  • }*
    La idea es que el programa a través de la función chequeo, mire que hay en las entradas y a través de eso decida. El tema es que me ignora las entradas. Es un problema de sintaxis con el while? Muchas Gracias
    While_y_Func.ino (646 Bytes)

Yo no me complicaría la vida tanto, Eliminaría el "void chequeo" y el in [2] y haría los whiles así:

while (digitalRead(3)==HIGH && digitalRead(4)==HIGH)

Así a voz de pronto veo que estás intentando guardar en el vector "in" primero {3,4} (imagino que son dos botones, interruptores... INPUTs) y luego el estado:

void chequeo()
{
  int i=0;
  for (int i=0;i<2;i++){
  in = digitalRead(i); //in no es un número entero, es un vector; además estás leyendo 0 y 1, no 3 y 4.
                   }
 
}

Luego hay bastantes fallos, generalmente relacionados con lo mismo ("in[2]=={HIGH,HIGH}" in[2] sería el elemento 3 del vector, que tiene sólo 2 elementos, en ningún caso el vector).

Yo te lo he corregido así, aunque no he conectado mi placa ni sé realmente que quieres hacer por la ausencia total de descripciones o comentarios:

int in[2]={3,4};
bool estado[2];
//Puedes inicializar los contadores en el bucle for
void setup() {
  pinMode(3,INPUT);
  pinMode(4,INPUT);                 
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  estado[0]=digitalRead(3); //Estado inicial.
  estado[1]=digitalRead(4); 
}

void loop() {
  while (estado[0]==HIGH && estado[1]==HIGH) { //<-Te faltaba esta llave
  for (int i=0;i<4;i++){
  digitalWrite (8,HIGH);
  delay(4000);
  digitalWrite (8,LOW);
  delay(4000);}
  chequeo (estado);
}
  while (estado[0]==HIGH && estado[1]==LOW) { //<-Y esta
  for (int i=0;i<4;i++){
  digitalWrite (9,HIGH);
  delay(4000);
  digitalWrite (9,LOW);
  delay(4000);
   }
  chequeo (estado);
}
}

void chequeo(bool estado[]) { //<-Compara esta función con la tuya y analiza las diferencias
  for (int i=0;i<2;i++){
  estado[i] = digitalRead(in[i]);
}
}

Mira a ver si este código satisface lo que querías hacer y si lo entiendes; si necesitas algo más avisa. Si es lo que buscabas a ser posible indícalo también, puede servirle a otra gente.
Un saludo.