Go Down

Topic: Problemas en un bucle for dentro de una funcion (Read 470 times) previous topic - next topic

djcovag

Nov 13, 2018, 10:38 am Last Edit: Nov 14, 2018, 10:21 am by djcovag
Hola. Estoy elaborando un proyecto para el control de persianas en mi casa.
Tengo un problema a la hora de crear una función.
La idea de esta función es: tras un posible paso de nublado a soleado o viceversa, contar durante un tiempo cuantas veces esta el día nublado y cuanto soleado, con el fin comparar el resultado y definitivamente cambiar a estado soleado o nublado (o permanecer en el mismo estado).
El problema lo tengo cuando dentro de la función llegamos a un bucle for… Arduino se salta este for y no lo ejecuta, tras el las variables contadorSol y contadorNublado siguen teniendo su valor inicial en el programa (cero). No se en que me estoy equivocando.
¿Podéis ayudarme?
Adjunto el código de la función.
Gracias.

Code: [Select]
int contador () {

 lcd.clear();
 
 for (int i = 0; i > 5; i++) { //leemos valores , DURANTE UNOS MINUTOS.
   lecturasensores(); //lee el valor del sensor de luz y lo asigna a la variable luz

   if (luz > sensibilidadSensorNublado) { //sensibilidadSensorNublado es una constante
     contadorNublado++;
   }
   if (luz < sensibilidadSensorSol) { //sensibilidadSensorSol es una constante
     contadorSol++;;
   }
   if (digitalRead(LECTURA) == HIGH || lluvia < sensibilidadSensorLLuvia) {
     lcd.clear();
     break;
   }
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("¿NUBLADO O SOL?")TE
   lcd.setCursor(0, 1);
   lcd.print(contadorNublado);
   lcd.setCursor(0, 2);
   lcd.print(contadorSol);
   delay(2000);
 }

 return contadorNublado, contadorSol;


} // tras la funcion comparo los valores de contadorNublado y contadorSol con el fin de quien sea mayor predumine mas el estado nublado o el soleado.






Swift

Por favor lee las normas del foro Normas del foro en Español ahora en tu código:
Code: [Select]
 for (int i = 0; i > 5; i++) { //leemos valores , DURANTE UNOS MINUTOS.

no se está cumpliendo esto i > 5 por eso no entra en el bucle, entonces tendrias que cambiar por esto  i < 5 ahora si solo es esto lo que esta mal deberia funcionar como no compartes el resto del código esa es toda la ayuda que te puedo dar.

surbyte

Siempre que postees código debes usar estiquetas </>
Te paso por privado instrucciones para que modifiques tu post.



djcovag

Muchisimas gracias!!! ya funciona la función a la perfección.

A ver si acabo de pulir un poco mas el proyecto y lo comparto.

Ademas de lo descrito, la intención es si hace sol gestionar las persianas en funcion de una temperatura consigna deseada para la habitación, por otro lado bajarlas cuando llueve o es de noche, y subirlas cuando este despejado y la temperatura de la habitación es inferior a la consigna.

Como digo estoy aun terminando de perfeccionar el proyecto, las funciones principales las realiza bien.

Y perdón por no cumplir las normas del foro, era la primera vez que escribía.

Go Up