Buenas!! Soy nuevo en el foro. También lo soy en el mundo de arduino. Aunque decir que trabajo con Robots industriales desde hace varios años (Yaskawa,Fanuc...) Pero el mundo arduino lo tenia desconocido, el cual voy conociendo poco a poco. Cosa que me está fascinando.
Empecé con los kit de primeros pasos de arduino y ahora ya voy haciéndome mis pequeños proyectos personales (Cosa de poco). De eso os quería hablar. A ver si me podéis ayudar con este ultimo proyecto que no me termina de encajar. Supongo que es lo mas simple y quizá (Seguro!!) exista una manera mas rápida y sencilla de la que estoy realizando.
Me estoy haciendo un Alcoholímetro con un sensor MQ3 para que este detecte o no el nivel de alcohol en aire. Le he metido una lcd para que refleje el momento de soplar y luego según la condición ponga en pantalla un texto u otro.
El problema lo tengo en la función "sopla". Creo una variable
float y luego esa le digo que sea la de lectura analógica. Pues esa lectura la tengo en una condición "While (millis)" Durante 5 segundos aparece en pantalla sopla y al mismo tiempo le hago la lectura a la variable analógica para luego valorar la condición. Algo así:
void Sopla()
{
float guardar;
float valor_alcohol;
float valor=Serial.read();
lcd.clear();//Limpiamos pantalla lcd
lcd.setCursor(6, 0); //Moverlo a la primera columna de nuevo
lcd.print("SOPLA!! ");
unsigned long startTime = millis();
while(millis() - startTime < 4000)//ejecutar funcion durante 5 sg {
valor_alcohol=analogRead(A0);
delay(10);
float porcentaje=(valor_alcohol/1000);
float guardar=porcentaje;
Serial.println(guardar); // Envia al Serial el porcentaje
Serial.println(' ');
guardar=Serial.read();
}
}
El caso es que cuando salgo de esa función entro en otra que compara las condiciones, de si el valor de alcohol es mayor de o menor de ejecuta esto o lo otro. ( if(valor_alcohol > valor_limite) ) Pues este valor siempre me sale bajo, pues como le digo que que la variable valor_alcohol es lo que le mande el sensor... Pues al dejar de soplar y empezar a leer la condición, este valor empieza a bajar en ese pequeño instante y ya no me da el valor real.
Necesito guardar el valor de la variable Valor_alcohol justo antes de salir en alguna otra variable que sea fija para que no baje al no detectar el soplido. No sé si me he explicado bien..

Espero que me podáis ayudar y ya tener este problema para futuros proyectos.
PD: Supongo que la solución a este problema sería dejar de beber