Hoy vamos a diseñar y programar un pequeño circuito que nos mida la temperatura.
En función de los valores obtenidos,tendremos el siguiente funcionamiento:
- Si la temperatura es <25ºC el sistema se encuentra a la temperatura óptima.
- Si la temperatura es >25ºC activaremos una señal luminosa.
- Si la temperatura es >30ºC activaremos la señal luminosa y un ventilador al 60%.
- Si la temperatura es >37ºC activaremos la señal luminosa y el ventilador casi a máxima potencia.
El componente empleado para realizar la medición es un sensor de temperatura LM35. Aquí podemos ver su patillaje:
Este es el esquema que he diseñado para la práctica:
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 >25ºC
La temperatura es >30
Vídeo Funcionamiento:
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 función 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 analógica 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
hola
ResponderEliminareste es justo el ejemplo del cual pregunto en la seccion de las pulsaciones del led !!!!!!!!!!!!!!
como ves el uso de varios if se torna muy complejo
como hacer esto mas claro con la sentencia switch
gracias
a ti si te salio la practica
EliminarNO ME SALIO NO ME FUNCIONA EL VENTILADOR EL LED SI PERO EL VENTILADOR NO ESTOY ALIMENTANDO A 10 VOLST SERA POR ESO
ResponderEliminarHola disculpa cual es el programa que utilizas para esto? no se muy bien de programación y con esto me ayudarías bastante a saber como hacerlo : (
ResponderEliminarHola Eduardo. El programa es el propio de arduino, lo puedes descargar desde la pagina web oficial. Un saludo
ResponderEliminarya lo he hecho y me pasa lo mismo que a otro compañero, no funciona el ventilador, sólo el LED
ResponderEliminarHola Ismael. ¿Estas alimentando el ventilador con su tensión correcta? otra cosa muy importante es que unifiques la masa de las dos fuentes.
ResponderEliminarEspero que te funcione, cualquier cosa no dudes en preguntar.
Un saludo
gracias por contestar, las tierras se unifican todas con las del arduino?, o con la fuente?
ResponderEliminarEn este caso como estas utilizando la fuente del arduino para el control, y luego una fuente externa para hacer funcionar el ventilador, tienes que unificar las masas. Es decir simplemente uniendo con un cable gnd del arduino y gnd de la fuente externa ya estas unificando masas. Fíjate en el esquemático de arriba. Espero tu respuesta. Un saludo
ResponderEliminaruna pregunta para alimentar el ventilador con otra fuente que puedo usar??? ... para que funcione adecuadamente
ResponderEliminarHola Cecilia,
Eliminarpues para alimentar el ventilador puedes usar cualquier tipo de fuente que de el voltaje suficiente. Por ejemplo una fuente de Pc o un transformador.
Un saludo
oye no Tienes el Diagrama del Proyecto pero Donde se Observe Bien cada conexion?
ResponderEliminarque mateiales usaste ??
ResponderEliminaramigo puedes subir el archivo del programa en arduino, gracias....
ResponderEliminar