Instrumentacin Electrnica
Escuela Profesional de Ingeniera Electrnica
Ing. Samaniego Manrique, Javier
Prof.
CONTROL DE TEMPERATURA
Objetivos:
Sabiendo que la temperatura juega un rol importante dentro de un
invernadero, en esta parte del proyecto tenemos como objetivo el
mantener una temperatura estable dentro del invernadero, para
lograr este resultado nos ayudaremos de herramientas como la
programacin en microcontroladores.
En la actualidad, una gran parte de proyectos electrnicos tienen
comunicacin inalmbrica, este no debe ser una excepcin; de forma
que vamos a establecer comunicacin con un mvil haciendo uso de
un mdulo Bluettooh.
Materiales:
Sensor de Temperatura: LM35
Este es quiz el sensor ms
comn y utilizado en proyectos
de electrnica en donde el
objetivo
es
querer
medir
temperatura.
El LM35 es un sensor de
temperatura con una precisin
calibrada de 1C. Su rango de
medicin abarca desde -55C
hasta 150C. Tiene una salida
lineal y cada grado Celsius
equivale a 10mV.
El LM35 no requiere de circuitos
adicionales para calibrarlo externamente. La baja impedancia de
salida, su salida lineal y su precisa calibracin hace posible que est
integrado sea instalado fcilmente en un circuito de control. Debido a
su baja corriente de alimentacin se produce un efecto de auto
calentamiento muy reducido.
Se encuentra en diferentes tipos de encapsulado, el ms comn es
el TO-92, utilizada por transistores de baja potencia.
Prof.
Microcontrolador: Atmega 8
Este microcontrolador pertenece a la familia de los AVR del fabricante
estadounidense Atmel.
Posee una arquitectura RISC avanzada.
Algunas de las caractersticas ms importantes son:
Prof.
Funcionamiento:
Hemos programado el microcontrolador de manera que, cuando el
invernadero se encuentre a una temperatura superior a los 27C, este
activara los ventiladores los cuales se encargaran de disminuir la
temperatura; en la simulacin, los ventiladores son representados por dos
diodos Leds.
Cuando la temperatura dentro del invernadero se encuentre entre los 24 y
26C no se realiza ninguna accin, ya que esa ser la temperatura que
intentaremos mantener dentro.
Prof.
Prof.
Programacin:
La programacin para obtener el resultado de lo explicado en el punto
anterior ha sido realizada en el entorno de Atmel Studio 6, el cual es un
software libre que nos facilita la programacin de microcontroladores
Atmega.
A continuacin, se muestra el programa escrito en lenguaje C.
/*
*/
#include <avr/io.h>
#define F_CPU 1000000L
#include "lcd.c"
#include "lcd.h"
#include <util/delay.h>
char cadena1[0];
unsigned char maximo[8]={' ',' ','M','a','x','i','m','o'};
unsigned char nada[8]={' ',' ',' ',' ',' ',' ',' ',' '};
unsigned char minimo[8]={' ',' ','M','i','n','i','m','o'};
float s;
int m,n,z,d,u,i;
uint32_t f;
// INDICAMOS QUE f es de 32 bits.
unsigned char b,x;
void configura_usart(void)
{
UBRRH=0;
UBRRL=12;
UCSRA=(1<<U2X);
UCSRB=(1<<TXEN|1<<RXEN);
UCSRC=(1<<URSEL|1<<UCSZ1|1<<UCSZ0);
}
void transmite(void)
Prof.
}
int main(void)
{ DDRD=0xF0;
lcd_init();
configura_usart();
ADCSRA=(1<<ADEN|1<<ADPS2|1<<ADPS1|0<<ADPS0); //factor de divisin 16
ADMUX=(0<<REFS1|1<<REFS0|0<<ADLAR|0<<MUX3|1<<MUX2|0<<MUX1|
0<<MUX0);
while(1)
{
ADCSRA |=(1<<ADSC);
While(ADCSRA & (1<<ADSC));
f=ADC;
//SE ALMACENA LOS 10 BITS EN f
s=f*500/1023;
//SE REALIZA LA OPERACION DE CONVERSION PARA LA
TEMPERATURA A MOSTRAR
m=s;
n=(m-s)*100;
m=m-6;
d=m/10;
d=d+0x30;
x=d;
transmite();
u=m%10;
u=u+0x30;
x=u;
transmite();
x=96;
transmite();
x='C';
transmite();
if(m>=27)
{
_delay_ms(200);
for(i=0;i<8;i++)
{x=maximo[i];
transmite(); //TRANSMITIMOS LA LECTURA AL PUERTO SERIAL
}
PORTD=0xC0; //CUANDO SUPERA LOS 27C ACTIVA EL VENTILADOR
}
if (m>=25 & m<=26)
{
_delay_ms(200);
for(i=0;i<8;i++)
{x=nada[i];
transmite();
}
PORTD=0x00; //CUANDO SE ENCUENTRA ENTRE 25-26C NO HAY ACCION
}
if(m<=24)
{
_delay_ms(200);
for(i=0;i<8;i++)
{x=minimo[i];
Prof.
transmite();
}
PORTD=0x30; //CUANDO ESTA DEBAJO DE 24C ACTIVA LA CALEFACCION
x=13;
transmite();
lcd_gotorc(1,4);
lcd_puts("TEMPERTURA");
sprintf(cadena1,"%d.%d ",m,n);
//PARA IMPRIMIR EL DATO TIPO CARACTER
lcd_gotorc(2,2);
//ESTABLECEMOS CORDENADAS
lcd_puts(cadena1);
lcd_gotorc(2,7);
lcd_data(0xDF);
//MOSTRAMOS SIMBOLO DEL GRADO CELSIOS
lcd_gotorc(2,8);
lcd_data('C');
lcd_gotorc(2,10);
lcd_puts(" ");
_delay_ms(600);
}
}
Bibliografa:
https://es.wikipedia.org/wiki/LM35
https://es.wikipedia.org/wiki/AVR
http://www.sc.ehu.es/sbweb/webcentro/automatica/web_avr/archivos/
Otros%20AVRs/ATmega/ATmega8.htm
http://www.profetolocka.com.ar/2015/05/09/modulo-de-4-reles-paraarduino/