Sunteți pe pagina 1din 5

Termmetro con LM35, y aviso visual+ventilador a 3 velocidades.

Hoy vamos a disear y programar un pequeo circuito que nos mida la temperatura.
En funcin de los valores obtenidos,tendremos el siguiente funcionamiento:

Si la temperatura es <25C el sistema se encuentra a la temperatura ptima.


Si la temperatura es >25C activaremos una seal luminosa.
Si la temperatura es >30C activaremos la seal luminosa y un ventilador al 60%.
Si la temperatura es >37C activaremos la seal luminosa y el ventilador casi a
mxima potencia.

El componente empleado para realizar la medicin es un sensor de temperatura


LM35. Aqu podemos ver su patillaje:

Este es el esquema que he diseado para la prctica:


Para alimentar el sensor LM35 podremos utilizar la misma fuente de Arduino, que nos
suministra 5 voltios Vdc. En cambio para alimentar el ventilador de PC, le alimentaremos
con una fuente adicional de 12 Vdc.
El diodo Led de alarma simplemente le pincharemos en la patilla 13 y GNd de Arduino, ya
que lleva una resistencia interna de 330 ohmios.

Funcionamiento:

La temperatura es ptima

La temperatura es >25C

La temperatura es >30
Vdeo Funcionamiento:

Dentro del programa compilador en la seccion Tools>>Serial monitor, podremos visualizar


la temperatura a travs del puerto serie.

SKETCH:
//Lectura de temperatura mediante un sensor del tipo LM35, y aviso visual con un
ventilador a 3 velocidades.
// el programa medir la temperatura y en funcin de los valores, activara un led de alarma
o activara un ventilador a varias velocidades

int pinTemperatura = 2;// daremos el nombre al pind e temperatura


int ledpin1 = 13;
int rele = 12;
int tempValor ; // La variable donde se almacena la temperatura
void setup()
{
Serial.begin(9600); // Activamos el puerto serie para visulizar y definimos los pin 13 y 12
como salida
pinMode(ledpin1, OUTPUT);
pinMode(rele, OUTPUT);
}
void loop()
//bucle
{
//mediante la siguiente encuacion transformaremos la lectura analgica en un valor de
temperatura almacenado en la variable tempValor
tempValor = ( 5.0 * analogRead(pinTemperatura) * 100.0) / 1024.0;
// la funcion serial.print Impreme el valor en el puerto serie
Serial.print("La Temperatura en este momento es de: (Celsius) = ");
Serial.println(tempValor);
// el delay es para medir la temperatura cada segundo
delay (1000);
int i= 0;
analogWrite(rele,i); // el ventilador estar apagado ya que i=0
if(tempValor>25)// cuando la temperatura alcanza 25 grados se activa la alarma visual,
ventilador apagado.
{
digitalWrite(ledpin1,HIGH);
delay(500);
digitalWrite(ledpin1,LOW);
if(tempValor>30) // si la temperatura es mayor a 30 grados, se activa el ventilador al
60% aprox
{
int i = 150;
analogWrite(rele,i);
if(tempValor>37)// si la temperatura es mayor a 30 grados, se activa el ventilador al
85% aprox
{
int i = 215;
analogWrite(rele,i); //Recordemos que la funcion analogWrite toma valores entre
0 y 255.

}
}
}
}

//Redfox

S-ar putea să vă placă și