Monografias.com > Tecnología
Descargar Imprimir Comentar Ver trabajos relacionados

Sistema de control de temperatura




Enviado por Josele



Partes: 1, 2

    Monografias.com

    SISTEMA DE CONTROL DE TEMPERATURA DE UN CLIMATIZADOR:

    Para esta aplicación se utilizan 2 microinterruptores de 8 bits, una placa con el sensor
    de temperatura LM35, un display LCD 16×2 y una placa con diodos led.

    Los microinterruptores los conectaremos al PORTC y al PORTD. El bus de datos del
    LCD al PORTB y los bits de control E W S a los pines RE0 RE1 RE2 respectivamente.
    El LM35 a la patilla RA0 y dos de los leds de la placa de diodos a las patillas RA1 y
    RA2.

    FUNCIONAMIENTO DEL SISTEMA:

    El usuario introduce la temperatura máxima y mínima deseadas mediante los
    microinterruptores conectados al PORTD y PORTC respectivamente.

    Si el sistema supera la temperatura máxima del rango, se activara una alarma visual con
    el texto “FRIO” en el LCD y se apagara* el led conectado a la patilla RA2.

    ACTUAL:28 FRIO
    MAX:27
    MIN:24
    Cuando el sistema no alcance la temperatura mínima del rango, se activará la alarma
    visual “CALOR” en el LCD y se producirá un cambio de nivel de tensión en la patilla
    RA1 apagándose* el led conectado a esta.

    ACTUAL:23 CALOR
    MAX:27
    MIN:24
    *Los leds se apagaran debido a que por defecto estarán encendidos al alimentar la placa
    de leds utilizada. De esta forma podremos visualizar mejor los cambios de nivel.

    Si por algún casual, el usuario introduce un valor de temperatura mínima mayor que el
    valor de temperatura máxima, se activará una alarma visual con el texto “ERROR”, y
    por supuesto no se producirá ningún cambio de nivel en RA1 ni en RA2.

    ACTUAL:28 ERROR
    MAX:22
    MIN:24
    Siempre que el usuario introduzca correctamente las temperaturas máxima y mínima y
    la temperatura ambiente permanezca dentro del intervalo impuesto, visualizaremos
    únicamente en el LCD la temperatura actual y la mínima y máxima elegidas.

    ACTUAL:26
    MAX:27
    MIN:24
    En las líneas 2 y 3 de la página 6 podemos activar la función prueba2( ) y desactivar
    rango( ), de esta manera veríamos en la segunda línea del LCD la temperatura máxima y
    mínima alcanzadas por el sensor.

    1

    Monografias.com

    ESQUEMA DEL CIRCUITO:
    2

    Monografias.com

    PROGRAMA EN C:

    //PROGRAMA DE UN SISTEMA Q MIDE LA TEMPERATURA ACTUAL,
    //ADEMÁS MIDE LA MAXIMA Y MINIMA (O LIMITA LA TEMPERATURA A
    //UN RANGO IMPUESTO POR EL USUARIO).
    // SI EL SISTEMA SUPERA LA TEMPERATURA MAXIMA DEL RANGO, SE
    //ACTIVARA LA ALARMA "FRIO" Y SE APAGARA EL LED CONECTADO A LA
    //PATILLA RA2.
    //SI POR EL CONTRARIO, EL SISTEMA NO SUPERA LA TEMPERATURA
    //MINIMA DEL RANGO, SE ACTIVARA LA ALARMA "CALOR" Y SE
    //APAGARA EL LED CONECTADO A LA PATILLA RA1.
    //LOS LEDS SE APAGARAN DEBIDO A QUE POR DEFECTO LOS LEDS
    //ESTARAN ENCENDIDOS AL ALIMENTAR LA PLACA DE LEDS

    //EN PORTC SE INDICARA LA TEMPERATURA MINIMA DEL RANGO
    //MEDIANTE MICROINTERRUPTORES.
    //EN PORTD SE INDICARA LA TEMPERATURA MAXIMA DEL RANGO
    //MEDIANTE MICROINTERRUPTORES.
    //SI PORTC>PORTD VISUALIZAREMOS LA ALARMA "ERROR".

    //*********************************************************************
    //**CABECERA Y DECLARACION DE VARIABLES Y FUNCIONES***********

    #include
    unsigned char x=1;
    unsigned int temp,tempmin,tempmax,t;
    //para el switch (inicializa y actualiza max y min)
    //variables en hexadec y t (retardo conversor).
    unsigned int templcd,tempminlcd,tempmaxlcd; //variables en decimal para enviar al lcd.
    unsigned int rangmin,rangmax;

    unsigned char hexadec (unsigned char hex);
    void iniciar_lcd(void);
    void lcd_control(unsigned int valor);
    void prueba(void);
    void prueba2(void);
    void rango(void);
    void prueba3(void);
    void prueba4(void);
    void error(void);
    void lcd_dato(unsigned int dato);

    unsigned int i;
    //variables en Hexadecimal para enviar al lcd.
    //de los interruptores.

    //Pasa a decimal.
    //Inicia el LCD.
    //Control del LCD (Instrucciones).
    //Texto y datos a enviar al LCD.
    //Texto y datos a enviar al LCD.
    //Texto y datos a enviar al LCD.
    //Texto y datos a enviar al LCD.
    //Texto y datos a enviar al LCD.
    //Texto y datos a enviar al LCD.
    //Envia al LCD.

    //para el retardo de las funciones.
    3

    Monografias.com

    //*********************************************************************
    //****************************MAIN************************************

    void main(void){
    TRISB=0x00;
    TRISE=0x00;

    TRISC=0xFF;
    TRISD=0xFF;
    TRISA=0x01;

    PORTA=0x00;
    PORTC=0x00;
    PORTD=0x00;

    PORTE=0x00;
    PORTB=0x00;

    OPTION=0x80;
    INTCON=0xC0;
    ADCON1=0x8E;
    ADCON0=0x81;

    templcd=tempminlcd=tempmaxlcd=37;
    //SALIDA
    //SALIDA

    //ENTRADA DIGITAL
    //ENTRADA DIGITAL
    //salida digital. RA0 IN ANALOG

    //PORTA SALIDAS DIGITALES A 0
    //TEMP MINIMA DEL RANGO
    //TEMP MÁXIMA DEL RANGO

    //INICIALIZO A 0

    //justificado a derecha

    //37dec=25hex temperatura por defecto
    ADIE=1;
    ADGO=1;
    //HABILITO INTERRUPCION.
    //PONGO EN MARCHA LA CONVERSIÓN.
    while(1);

    }//MAIN

    //*************************FIN DEL MAIN*******************************
    //*********************************************************************

    4

    Monografias.com

    //***************INTERRUPCION CONVERSOR A/D***********************

    void interrupt convertir (void){
    if(ADIF){
    //SI HA TERMINADO LA CONVERSION
    ADIF=0;
    temp=(ADRESH1;
    templcd=hexadec(temp);

    rangmin=PORTC;
    rangmax=PORTD;

    iniciar_lcd();
    lcd_control(0x80);
    prueba();
    //divido entre 2 para buscar paridad de la escala.
    //PASO A DECIMAL.

    //temp mínima introducida interruptores.
    //temp mínima introducida interruptores.

    //fija mensaje en la primera fila.
    // envia al lcd.
    //Si queremos visualizar la temperatura minima y maxima q alcanza el termometro:

    //*****Inicializa y Actualiza la temperatura mínima y máxima********************

    //La idea es q si la primera vez q conectamos el sistema y:

    // 1)la temp actual(28 por ej) es mayor a la mi

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter