Está en la página 1de 9

Trabajo Prctico de Electrnica Temporizador de Cargas Monofsicas con Pic

Electricidad e Informtica Industrial 2012 ITU

Javier Chiappa

En este proyecto el objetivo es poder controlar una carga monofsica de alto consumo. Por ejemplo artefactos elctricos hogareos como calefones, estufas, lmparas, etc. La necesidad de crear este proyecto est dada por la falta de un temporizador para el nivel hogareo. En el mercado podemos encontrar temporizadores para aplicaciones industriales, que son muy caros, como estos:

Tambin podemos encontrar dispositivos para encender o apagar luces a determinada hora, como estos:

Estos dispositivos son ms econmicos, pero slo funcionan si especificamos la hora a la que vamos a encender el equipo. En artefactos de alto consumo para calefaccin, no podemos determinar precisamente la hora a la que los vamos a encender. Usualmente se activan cuando se van a usar. Lo que necesitamos es poder controlar cuanto tiempo van a quedar encendidos, por ejemplo, en el caso de una estufa, la activamos antes de ir a dormir y queremos que se mantenga encendida durante 1 hora y 30 minutos.

Este dispositivo est diseado para hace especficamente eso, mantener un relay activado durante un tiempo determinado y luego interrumpir el flujo de corriente. El mtodo de funcionamiento es el siguiente: Tenemos 3 botones y 2 leds, como se detalla en el panel:

Si queremos programar 1 hora y 40 minutos, hacemos lo siguiente: Presionamos una sla vez en el boton +1 Hora y cuatro veces el boton +10 Minutos. Luego presionamos el boton Encender/Apagar. Una vez que cargamos el tiempo y presionamos el botn, destellan los leds indicadores para confirmar el tiempo que hemos cargado. En este caso, enciende una vez el led Horas y cuatro veces el led Minutos. Luego enciende el relay y se mantiene as durante el periodo de tiempo mencionado. En cualquier momento mientras est encendido, o si nos equivocamos al cargar el tiempo, podemos volver a presionar el boton Encender/Cancelar y el dispositivo automticamente interrumpe el relay y vuelve al estado inicial.

El Cdigo fuente se realiz en el compilador PIC Simulator IDE de Oshonsoft. Este programa incluye un compilador de BASIC y un simulador del microchip. Una vez que nuestro programa funciona

correctamente, produce un archivo .hex que se carga en el PIC 12f629 mediante el Programador USB ORION:

De la empresa RDSS Electrnica, usando el software que provee la compaa que fabrica el microcontrolador, que se llama PICkit 2 Programmer:

Una vez realizado este proceso ya tenemos el microcontrolador listo para funcionar. Cdigo Fuente del Microcontrolador:

Symbol canal0 = GPIO.0 Symbol canal1 = GPIO.1 Symbol canal2 = GPIO.2 Symbol pulsador_go = GPIO.5 Symbol pulsador_horas = GPIO.4 Symbol pulsador_minutos = GPIO.3 AllDigital TRISIO = %111000 'GPIO: 0 = salidas 'Define SIMULATION_WAITMS_VALUE = 1 Dim tiempo As Word Dim rebote As Word Dim horas As Word Dim minutos As Word Dim segundos As Word Dim salida As Bit Dim bucle As Word Dim cuenta As Word Dim activado As Bit Gosub setea_variables 'bucle principal main: Gosub leer_botones Goto main End

setea_variables: bucle = 0 tiempo = 290 rebote = 200 salida = 0 horas = 0

minutos = 0 segundos = 0 canal1 = 0 canal2 = 0 canal0 = 0 cuenta = 0 activado = 0 Return blink: 'subrutina que cuenta el tiempo y mantiene el relay prendido canal2 = 1 'enciende el relay segundos = (minutos * 600) + (horas * 3600) For bucle = 0 To segundos Step 1 WaitMs tiempo canal0 = 0 WaitMs tiempo canal0 = 1 WaitMs tiempo canal1 = 0 WaitMs tiempo canal1 = 1 If pulsador_go = 1 And activado = 1 Then WaitMs rebote While pulsador_go = 1 WaitMs rebote Wend minutos = 0 horas = 0 canal2 = 0 'apaga el relay activado = 0 Gosub setea_variables Goto main Endif Next bucle cuenta = 0 segundos = 0 activado = 0 bucle = 0 canal1 = 0 canal2 = 0 'apaga el relay canal0 = 0

minutos = 0 horas = 0 Return leer_botones: If pulsador_horas = 1 Then WaitMs rebote While pulsador_horas = 1 WaitMs rebote Wend horas = horas + 1 Endif If pulsador_minutos = 1 Then WaitMs rebote While pulsador_minutos = 1 WaitMs rebote Wend minutos = minutos + 1 Endif If pulsador_go = 1 Then activado = 1 WaitMs rebote While pulsador_go = 1 WaitMs rebote Wend Gosub mostrar_seleccion Endif Return mostrar_seleccion: For bucle = 1 To horas Step 1 canal0 = 1 WaitMs 500 canal0 = 0 WaitMs 500 Next bucle For bucle = 1 To minutos Step 1 canal1 = 1 WaitMs 500 canal1 = 0 WaitMs 500 Next bucle

bucle = 0 Gosub blink Return Diagrama de conexiones:

Distribucion de puertos de E/S del PIC 12F629:

Diagrama de conexiones de la fuente de alimentacin: En esta fuente, la salida de 12V slo se usa para comandar el relay, por lo tanto no necesita estar estabilizada. La salida de 5V se usa para alimentar el circuito y es regulada por un integrado 7805.

También podría gustarte