Los comentarios que hago simplemente resaltan fallos de código nada mas.
-
Comprobación del termistor no esta hecha.
-
pinMode(A0, INPUT); //Termistor no hace falta de ningún modo ponerlo como entrada digital y luego usarlo como entrada analógica.
-
analogRead(ThermistorPin); solo no sirve para nada.
-
Tf no lo usas entonces para que lo calculas? // Copiado y pegado demostrado.
-
Tanto delay() lleva el programa a un fracaso inmediato, perdida de situaciones a verificar/controlar
Jamas en un sistema de control puedes y/o debes usar delay(). Reemplazo millis()
Ve a Documentcacion => Indice de temas tutoriales => millis()
tone(11, 554, 300); // play tone 61 (C#5 = 554 Hz)
delay(200); // Wait for 200 millisecond(s)
noTone(11);
delay(200); // Wait for 200 millisecond(s)
tone(11, 523, 300); // play tone 60 (C5 = 523 Hz)
delay(200); // Wait for 200 millisecond(s)
noTone(11);
delay(200); // Wait for 200 millisecond(s)
tone(11, 523, 300); // play tone 60 (C5 = 523 Hz)
delay(200); // Wait for 200 millisecond(s)
noTone(11);
delay(1000); // Wait for 1000 millisecond(s)
Esto son muchos milisegundos de perdida de tiempo 2 segundos exactamente.
luego hay otras cosas como estas
delay(10000); // Wait for 10000 millisecond(s)
y para empeorarla tienes ciclos cerrados como este
while (Tc == 1 && Tc < 12) {
if (Tc == 1 && Tc < 12) {
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
Serial.println("Temperatura =");
Serial.print(Tc);
}
}
en los que dejas de prestar atención a todo lo demás hasta alcanzar el rango de temperatura.
Se comprende la idea pero mal realizado.
Va enfoque nuevo
Edito: Consulta como es la conexión del NTC y la R1. Cual esta conectada a GND?