El siguiente código muestra una temperatura medida por un sensor Ds18b20 y una vez dicha temperatura sobrepasa un valor (En este caso 30°C) inicia un cronometro.
El código funciona a la perfección sin las lineas en negrilla, pero una vez las inserto (lo cual es necesario para poder salir del while) el cronometro deja de funcionar a su normalidad y comienza a andar lento, alguna sugerencia les agradecería de corazón. Muchas gracias
sensors.requestTemperatures();
temperatura=sensors.getTempCByIndex(0);
lcd.clear();//Limpiamos la LCD
lcd.setCursor(0,0);//Saltamos a la segunda linea
lcd.print("Temp:"+String(temperatura)+"/"+TempF1+" C");
delay(100);
while(temperatura >= 30)
{
[b]sensors.requestTemperatures();
temperatura=sensors.getTempCByIndex(0); [/b]
milisegundos = millis();
if(milisegundos % 100 == 0) //Solo entra si ha pasado un decimo de segundo
{
decimas++;
if(decimas == 10) //Cuando han pasado 10 decimas de segundo cuenta 1 segundo
{
decimas = 0;
segundos++;
}
if(segundos == 60) //Cuando han pasado 60 segundos cuenta 1 minuto
{
segundos = 0;
minutos++;
}
if(minutos == 60) //Cuando han pasado 60 minutos cuenta 1 hora
{
minutos = 0;
horas++;
}
//Print Time
lcd.setCursor(0,2);
lcd.print("TotalTime:");
lcd.setCursor(10,2);
if(horas < 10)
{
lcd.print("0");
}
lcd.print(horas);
lcd.print(":");
lcd.setCursor(13,2);
if(minutos < 10)
{
lcd.print("0");
}
lcd.print(minutos);
lcd.print(":");
lcd.setCursor(16,2);
if(segundos < 10)
{
lcd.print("0");
}
lcd.print(segundos);
lcd.print(":");
lcd.setCursor(19,2);
lcd.print(decimas);
}
}
}