USO PRACTICO DEL PIC12F675 (I) - PICKEY ELECTRÓNICA

Vaya al Contenido

Menu Principal:

USO PRACTICO DEL PIC12F675 (I)

Uso Practico del PIC12F675 (I)


PROYECTO: Temporizador para WC.

Esta es una sección dedicada especialmente al microcontrolador de Microchip PIC12F675 que se inaugura con un automatismo práctico. Se usará este componente como temporizador, a la vez que se verá cómo controlar la línea de 220AC.


.Fundamentos:
.Breve introduccion a la arquitectura de los Pic:

El PIC12F675 es un microcontrolador, que a igual que todas las familias de Pic incorpora una serie de modulos en su interior. Estos módulos son circuitos especializados. En sucesivos artículos se irá viendo los módulos de los que esta compuesto, y cómo hacer uso de ellos, lo que nos dará  una idea de sus posibles aplicaciones.

Al igual que el resto de los Pics, están diseñados siguiendo la arquitectura Harvard
, donde la memoria de datos está separada de la de programa, esto le permite acceder a ambas memorias al mismo tiempo. También son RISC (Reduced Instruction Set Computer), por lo que tienen un juego reducido de instrucciones (solo 35 instrucciones codigo maquina). Este valor puede variar dependiendo de la familia a la que pertenezca un PIC en particular.

El 12F675 pertenece a la familia de los micros llamados "enanos" de Microchip. Tiene solo 8 pines, 1024 Word de memoria Flash (también llamada memoria de programa), 64 Bytes de memoria RAM, 128 Bytes de memoria EEPROM y se puede conseguir en distintos encapsulados. Es económico y aunque  solo tiene 6 pines aprovechables se le puede sacar buen partido; para usarlo como descarga de procesos de un microcontrolador más grande o como "cerebro" de distintos automatismos simples.

Antes de continuar, se verán dos particularidades especiales
de este pic, y son dos ajustes que el fabricante realiza en cada micro de esta familia, por lo que es conveniente hacer una primera lectura del micro mediante el programador y guardar estos valores porque son distintos para cada chip. Estos Bits son los de Bandgap y los Bits de configuración del registro Osccal.

Bit de Bandgap:

Ajuste de la tensión umbral del modulo Brown-out especificada en el datasheets del micro. Este modulo se encarga de supervisar la tensión de alimentación y generar un reset si baja por debajo de la especificada por el fabricante. Los BIT de Bandgap son los dos más significativos o peso del registro de la palabra de configuración del pic, o también BIT de configuración o fuses.

Valor de calibración del registro Osccal;

Este valor también lo suministra el fabricante y lo deja almacenado en la ultima posición de memoria de la flash. Se utiliza para hacer un calibrado fino del oscilador del pic.

Ambos valores se borran al programar el micro si no se indica lo contrario en la configuración del programador.


En este proyecto utilizaremos los siguientes módulos internos del PIC:

 El reloj interno trabajando a 4Mhz.
 El modulo de entradas y salidas (I/O).
 El modulo Watchdog (Perro Guardián), este modulo lo nombraremos como WDT.
 El Timer1.

Al utilizar su generador de reloj interno se ahorra el cristal de cuarzo y sus dos condensadores asociados.

Con su modulo I/O programado, especialmente, se seteará la entrada de 220AC (falta de red eléctrica), controlar el encendido de dos testigos indicadores (diodos LED) y además activar un rele.

Los pines del modulo I/O se pueden configurar como entrada o salida digital, exceptuando el pin 4 (llamado GP3)
, que solo funciona como entrada. Como no se usa se conecta al plano de masa (GND). El resto de los pines que quedan sin usar serán configurados como salidas y se dejan sin conexión o "al aire". Si han revisado la hoja de datos (datasheets) habrán observado, que las patitas del micro además del numero de orden del pinout, también tienen nombre especifico "GP" seguido de un numero. En este caso hay que tener especial cuidado porque a esta familia se les da un nombre distinto al resto de familias de microcontroladores PIC.

Utilizando el modulo WDT se asegura que se generará un RESET interno del PIC (sino queda bloqueado el generador de reloj), en el caso de que se produzca algún bloqueo del programa causado por efectos desconocidos (normalmente ruido eléctrico). El modulo WDT necesita contar tiempo y lo hace reservándose para él, el "Timer0". Cuando el Timer0 se desborda, el WDT genera un RESET, así que para que esto no ocurra durante el funcionamiento normal del programa, se tiene que borrar el contador asociado al WDT (Timer0). Esta operación se tiene que procurar hacerla antes que termine de contar el tiempo que se le programó.

Para refrescar WDT (tambien resetear WDT, borrar WDT o poner a cero el contador del Timer0) se siguen tres sencillas reglas, y son las siguientes:

1)  Se comenzará a borrar en la rutina principal del programa.
2)  A lo largo del programa se borrara el menor número de veces posible.
3) Siempre se evitará resetarlo en la rutina de interrupciones (si las hay).

El Timer1 lo utilizaremos para generar unas bases de tiempos que nos servirán para controlar el parpadeo de los led, refrescar (actualizar) las salidas y controlar cada cuanto tiempo se ejecutan las rutinas del programa en general.

.Objetivos:

El propósito general de este automatismo es el de controlar un ventilador, usado como extractor para el cuarto de baño. El circuito tiene que cumplir tres requisitos básicos:

1º Cuando está en reposo, el automatismo no puede tener consumo alguno.
2º El circuito será controlado por un PIC "enano", el PIC12F675
3º Deberá ser capaz de controlar un ventilador de 220AC o 12V/<180mA.

.La función que realizará el circuito se llevara a cabo de la siguiente forma:

En el estado inicial, con el interruptor que controla la lámpara principal del baño en la posición de "abierto",  el rele se encuentra en estado de reposo, tal como se ve en el esquema. Al energizar la lámpara mediante el interruptor de la pared, queda también alimentado el circuito. El rele no se activa hasta pasados 30 segundos (sólo parpadeo de led rojo),  por lo que durante ese tiempo el circuito dependerá del interruptor de encendido de la lámpara del WC. Pasados estos primeros 30 segundos queda en modo de lectura de la alimentación por la entrada GP2 (parpadeo sólo del led verde). Cuando el programa detecta que la alimentación cae, activa el rele aprovechando la carga de C6 (parpadeo de led verde y rojo de forma sincronizada). De este modo todo el circuito pasa a estar alimentado directamente de la línea de 220VAC a través de los contactos del rele, comenzando un periodo de temporización de 2 minutos de duración. Cuando este tiempo ha transcurrido, el PIC corta la alimentación del rele y este pasa al estado de reposo (parpadeo de los led rojo y verde de forma alterna). Si el interruptor de la pared que controla la lámpara está abierto, el circuito pierde la alimentación y todo queda sin energía. En caso de que el interruptor siga cerrado, el circuito espera 1 segundo y luego pasa de nuevo al modo de seteado de la alimentación, quedando en este estado de monitorización de la red eléctrica esperando a que esta desaparezca para comenzar una nueva temporizacion.

.El funcionamiento del circuito:

Los conectores CN1 y CN2 se utilizan para alimentar el circuito desde la toma de la lámpara y, para alimentar la lámpara respectivamente, para no tener que hacer modificaciones en la instalación eléctrica de la casa. El conector CN3 es una toma de corriente de 220 AC directa de red. Aun que si la instalación de la lámpara es estándar, el cableado de interconexión del circuito puede quedar mucho más simplificado. Cuando se activa el rele, sus contactos suministran la energía tanto al circuito como al ventilador 220VAC conectado al CN5, quedando todo alimentado desde la red de forma directa. R9 es un varistor de 275V, y es un estupendo filtro de red. Después del puente rectificador pueden verse los condensadores C4 y C1, que son el filtro de la fuente. Siguiendo con el circuito del ventilador de CC, es muy importante colocar el condensador C3/10nF  para disminuir el ruido que genera el motor eléctrico y que es inyectado en la fuente. Este condensador tiene que estar lo mas cerca posible de los contactos del CN4.

Para que el PIC pueda comprobar la perdida de alimentación se usa un divisor de tensión compuesto por  R4 y R5, más la capacidad C7 para dar algo de estabilidad a la señal. También nos aprovechamos del diodo interno limitador que tiene este pin y que nos limita la tensión (5.5v) que le llega desde el exterior. D1 y C6 nos permiten prolongar la alimentación del PIC frente a caídas de la alimentación. C4 tiene que ser de menor capacidad que  C6, y se añade R2 que ayuda a la descarga de C4, para hacer que en el caso de ausencia de tensión el PIC pueda detectar esta caída antes de quedarse sin alimentación; sobre todo en el caso de no utilizar un ventilador de 12VDC. IC2 es un conocido estabilizador de tensión de 5V/1A (7805CV),  que es complementado por C5. Q1 se encarga de suministrar la corriente necesaria para alimentar el rele, porque el microcontrolador no tiene suficiente potencia para hacerlo directamente. D2 absorbe los picos inversos de corriente que se producen al alimentar la bobina del rele, no se puede suprimir del esquema, ya que el transistor seria destruido con el tiempo. C2 es el condensador de desacople del PIC. Este condensador es tan valioso como el mismo Pic así que no se puede suprimir y ha de estar lo mas cerca posible de los pines de alimentación del integrado. Los LEDs solo se utilizan para saber en que estado se encuentra el circuito (a la hora de programar esto nos ayuda mucho para encontrar errores en el código del programa), se pueden suprimir porque el circuito estará oculto.

El calculo de las resistencias (R8, R7) limitadoras de los diodos LED se hará de la siguiente forma:

R = (5V-1.2V) /0.015A.

Este es un cálculo genérico, siendo 5V la tensión de alimentación y 1.2V el voltaje de la unión del diodo LED (que varía según su color), y por ultimo 0.015A es la corriente que deseamos atraviese el LED.

Para calcular la resistencia (R1) de polarización del transistor se utiliza una formula también genérica:

R1 =  (5V-0.6V) / 0.001A.

Se tiene  que recordar que el valor de 0.001A solo es aproximado. Para estar seguros que el transistor estará trabajando en saturación, el proceso es tan simple como multiplicar el valor de la corriente de polarización (en este caso 1mA) por la ganancia de corriente del transistor presente en su hoja de datos, el resultado tendra que estar próximo a la corriente de saturación del mismo, 5V es la alimentación, y los 0.6V o 0.7V corresponden a la caída de tensión entre los extremos de la unión base/emisor de un transistor de silicio. La resistencia limitadora R3 de 1/2W en serie con el motor limita los picos de corriente durante el arranque. Es recomendable colocarla cuando se trabaja con motores y las fuentes de alimentación están demasiado justas de corriente. La corriente de arranque de un motor es muy elevada con respecto a la corriente de trabajo indicada por el fabricante.

< Circuito terminado >

< Esquema del circuito >

 
Copyright 2016. All rights reserved.
Regreso al contenido | Regreso al menu principal