const float BETA = 3950; // Esta es la resistencia característica del material de que está
// hecho el termistor NTC, en este caso es virtual.
float num = 0; // Declaramos una variable tipo float (decimal) con el nombre "num"
// y contendra el numero "0" en el.
int temp = A0; // Declaramos una variable tipo integer con el nombre "temp" y le
// indicamos que le corresponde el puerto "A0" de la placa arduino.
int ledrojo = 13; // Declaramos una variable tipo integer con el nombre "ledrojo" y le
// indicamos que le corresponde el puerto "13" de la placa arduino.
int ledtra = 12; // Declaramos una variable tipo integer con el nombre "ledtra" y le
// indicamos que le corresponde el puerto "12" de la placa arduino.
int ledver = 11; // Declaramos una variable tipo integer con el nombre "ledver" y le
// indicamos que le corresponde el puerto "11" de la placa arduino.
int buzz = A1; // Declaramos una variable tipo integer con el nombre "buzz" y le
// indicamos que le corresponde el puerto "A1" de la placa arduino.
void setup() { // Establecemos una orden la cual queremos que se ejecute
// inmediatamente se inicie el programa.
Serial.begin(9600); // Esta instrucción le indica a la placa Arduino
// que inicie comunicación con el ordenador con una velocidad de comunicación
// serial de 9600 bits por segundo.
pinMode(ledrojo, OUTPUT); // Indica que el puerto de nuestra placa arduino a el que
// hemos llamado anteriormente “ledrojo” es un dispositivo que deje pasar el voltaje que
// recibe para transformarlo en luz.
pinMode(ledtra, OUTPUT); // indica que el puerto de nuestra placa arduino a el que
// hemos llamado anteriormente “ledtra” es un dispositivo que deje pasar el voltaje que
// recibe para transformarlo en luz.
pinMode(ledver, OUTPUT); // indica que el puerto de nuestra placa arduino a el que
// hemos llamado anteriormente “ledver” es un dispositivo que deje pasar el voltaje que
// recibe para transformarlo en luz.
pinMode(temp, INPUT); // indica que el puerto de nuestra placa arduino a el que
// hemos llamado anteriormente “tmp” es un dispositivo que deje entrar información
// a través de la temperatura que recoje del ambiente.
pinMode(buzz, OUTPUT); // indica que el puerto de nuestra placa arduino a el que
// hemos llamado anteriormente “buzz” es un dispositivo que deje pasar el voltaje que
// recibe para transformarlo en el sonido.
}
void loop() { // Establecemos una orden que repetirá infinitamente el código el cual
// le pongamos dentro.
num = analogRead(temp); // Leeremos el valor sobre la temperatura ambiente que
// recibamos del pin (A0) del termistor y lo almacenaremos en la variable declarada
// anteriomente llamada "num".
digitalWrite(ledtra, LOW); // Empezamos con el transparente apagado
delay(1000); // ponemos un delay para leer el analogread y incendender el led durante un
// segundo.
digitalWrite(ledtra, HIGH); // Cada vez que la informacion del analogread sea leida, se
// encendera el led para indicanos que se detecta informacion y funciona todo el sistema
// correctamente.
float Gradoscelsius = 1 / (log(1 / (1023.0 / num - 1)) / BETA + 1.0 / 298.15) - 273.15;
// En la suiguiente orden declaramos una variable tipo float (decimal) con el nombre
// "Gradoscelsius", y este almacenara la formula necessarria para passar de "Kelvin" a
// "Celsius" tal como se nos pide.
if (Gradoscelsius > 45) { // Primeramente, estableceremos una orden que le dirá al
// Arduino lo siguiente: "si el valor de "Gradoscelsius" es menor a 30, se ejecutara los
// comandos que se encuentran dentro de los {".
Serial.print("Temperatura: "); // Esta orden nos mostrará en una pequeña pantalla
// del simulador la su¡iguiente sentencia "Temperatura: ".
Serial.print(Gradoscelsius); //Como en en el anterior caso, se mostrara un contenido
// en una pequeña pantalla del simulador seguidamente de la anterior sentencia propuesta,
// pero en este caso cojeremos el valor resultante de la formula anteriormente realizada
// almacenada en la variable "Gradoscelsius".
Serial.print(" ℃"); // A continuación, mostraremos " ºC" en pantalla para terminar la
// frase que hemos montado para que nos indique la temperatura a la que se encuentra el
// ambiente.
Serial.println(); // Esta orden nos cambiara de linea para que los resultados no se queden
// pegados entre si.
Serial.println("*********************************************************");
// Añadimos unas pequeñas decoraciones.
Serial.print("LA TEMPERTATURA EXCEDE EL LIMITE RECOMENDADO !!!!!!!!!!!");
Serial.println(); // Esta orden nos cambiara de linea para que los resultados no se queden
// pegados entre si.
Serial.println("*********************************************************");
// Añadimos unas pequeñas decoraciones.
digitalWrite(ledver, LOW); // Esta orden apagara nuestro led verde cuando la temperatura que
// se detecta no es estable.
digitalWrite(ledrojo, HIGH); // Esta orden encendera nuestro led rojo para poder crear una
// intermitencia indefinidamente hasta que el led cambie a una temperatura estable.
tone(buzz,1024); // En la orden "Tone", indicamos primeramente la variable que hemos declarado
// anteriormente como "buzz", y seguidamente colocamos los hz que qeremos que emita nuestro buzzer
delay(500); // Pondremos un "delay" para que espere unos segundos para crear el efecto de
// intermitencia en el buzzer y en el ledrojo
noTone(buzz); // Despues de que el buzzer suene durante el tiempo indicado en el delay anterior,
// lo apagaremos para que de esta manera cada vez que la temperatura sea mayor a 30, suene.
digitalWrite(ledrojo, LOW); // Esta orden apagara nuestro led rojo para poder crear una
// intermitencia indefinidamente hasta que el led cambie a una temperatura estable.
delay(1000); // // Por último, pondremos un "delay" para que espere unos segundos antes de
// volver a repetir todo el codigo realizado en el "void loop" y volver a mostrar por
// pantalla otra temperatura diferente.
}
if (Gradoscelsius <= -24) {
Serial.print("Temperatura: ");
Serial.print(Gradoscelsius);
Serial.print(" ℃");
Serial.println();
Serial.println("*********************************");
Serial.print("¡¡¡Temperatura excesivamente BAJA!!!");
Serial.println();
Serial.println("*********************************");
digitalWrite(ledrojo, HIGH);
digitalWrite(ledver, LOW);
}
else { // Primeramente, estableceremos una orden que le dirá al Arduino lo siguiente: "sino es la
// condicion establecida en el "if", ejecuta estos comandos " es menor a 30, se ejecutara los
// comandos que se encuentran dentro de los {"
noTone(buzz); // lo apagaremos para que de esta manera cada vez que la temperatura sea
// menor a 30, no suene
Serial.print("Temperatura: "); // Esta orden nos mostrará en una pequeña pantalla
// del simulador la su¡iguiente sentencia "Temperatura: ".
Serial.print(Gradoscelsius); //Como en en el anterior caso, se mostrara un contenido
// en una pequeña pantalla del simulador seguidamente de la anterior sentencia propuesta,
// pero en este caso cojeremos el valor result ante de la formula anteriormente realizada
// almacenada en la variable "Gradoscelsius".
Serial.print(" ℃"); // A continuación, mostraremos " ºC" en pantalla para terminar la
// frase que hemos montado para que nos indique la temperatura a la que se encuentra el
// ambiente.
Serial.println(); // Esta orden nos cambiara de linea para que los resultados no se queden
// pegados entre si.
Serial.println(" ---------------------"); // Añadimos unas pequeñas decoraciones.
Serial.print("| Temperatura estable |"); // Mostraremos un mensaje para decir que todo el
// rango de temperaturas que se muestran son temperaturas estables.
Serial.println(); // Esta orden nos cambiara de linea para que los resultados no se queden
// pegados entre si.
Serial.println(" ---------------------"); // Añadimos unas pequeñas decoraciones.
digitalWrite(ledver, HIGH); // Esta orden encendera nuestro led verde cuando la temperatura que
// se detecta no estable.
delay(1000); // Por último, pondremos un "delay" para que espere unos segundos antes de
// volver a repetir todo el codigo realizado en el "void loop" y volver a mostrar por
// pantalla otra temperatura diferente.
}
}