Temporizador de Cargas Monofásicas con Pic
-
Upload
javierchiappa -
Category
Documents
-
view
431 -
download
8
description
Transcript of Temporizador de Cargas Monofásicas con Pic
Trabajo Práctico de Electrónica
Temporizador de Cargas Monofásicas con Pic
Electricidad e Informática Industrial2012ITU
Javier Chiappa
En este proyecto el objetivo es poder controlar una carga monofásica de alto consumo. Por ejemplo artefactos eléctricos hogareños como calefones, estufas, lámparas, etc.
La necesidad de crear este proyecto está dada por la falta de un temporizador para el nivel hogareño. En el mercado podemos encontrar temporizadores para aplicaciones industriales, que son muy caros, como estos:
También podemos encontrar dispositivos para encender o apagar luces a determinada hora, como estos:
Estos dispositivos son más económicos, pero sólo funcionan si especificamos la hora a la que vamos a encender el equipo. En artefactos de alto consumo para calefacción, 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á diseñado para hace específicamente eso, mantener un relay activado durante un tiempo determinado y luego interrumpir el flujo de corriente.
El método 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 sóla 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 botón, 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 automáticamente interrumpe el relay y vuelve al estado inicial.
El Código 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 Electrónica, usando el software que provee la compañía que fabrica el microcontrolador, que se llama “PICkit 2 Programmer”:
Una vez realizado este proceso ya tenemos el microcontrolador listo para funcionar.
Código Fuente del Microcontrolador:
Symbol canal0 = GPIO.0Symbol canal1 = GPIO.1Symbol canal2 = GPIO.2
Symbol pulsador_go = GPIO.5Symbol pulsador_horas = GPIO.4Symbol pulsador_minutos = GPIO.3
AllDigital
TRISIO = %111000 'GPIO: 0 = salidas
'Define SIMULATION_WAITMS_VALUE = 1
Dim tiempo As WordDim rebote As WordDim horas As WordDim minutos As WordDim segundos As WordDim salida As BitDim bucle As WordDim cuenta As WordDim activado As Bit
Gosub setea_variables
'bucle principalmain:
Gosub leer_botones
Goto main
End
setea_variables:
bucle = 0tiempo = 290 rebote = 200salida = 0
horas = 0minutos = 0segundos = 0canal1 = 0canal2 = 0canal0 = 0cuenta = 0activado = 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 = 0WaitMs tiempocanal0 = 1WaitMs tiempocanal1 = 0WaitMs tiempocanal1 = 1
If pulsador_go = 1 And activado = 1 Then WaitMs reboteWhile pulsador_go = 1
WaitMs reboteWendminutos = 0horas = 0canal2 = 0 'apaga el relayactivado = 0Gosub setea_variablesGoto main
Endif
Next bucle
cuenta = 0segundos = 0activado = 0bucle = 0canal1 = 0canal2 = 0 'apaga el relay
canal0 = 0minutos = 0horas = 0Return leer_botones:
If pulsador_horas = 1 ThenWaitMs reboteWhile pulsador_horas = 1
WaitMs reboteWendhoras = horas + 1
Endif
If pulsador_minutos = 1 ThenWaitMs reboteWhile pulsador_minutos = 1
WaitMs reboteWendminutos = minutos + 1
Endif
If pulsador_go = 1 Thenactivado = 1WaitMs reboteWhile pulsador_go = 1
WaitMs reboteWend
Gosub mostrar_seleccionEndif
Return
mostrar_seleccion:
For bucle = 1 To horas Step 1canal0 = 1WaitMs 500canal0 = 0WaitMs 500
Next bucle
For bucle = 1 To minutos Step 1canal1 = 1WaitMs 500canal1 = 0WaitMs 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 alimentación:
En esta fuente, la salida de 12V sólo 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.