PRÁCTICA Nº 7:
Proyecto: Regulador lumínico mediante el control de la fase.
¿En qué
consiste una regulación por control de la fase?
La corriente eléctrica que usamos en la vida diaria es
una señal alterna senoidal como la de la figura:

Al pasar esta corriente eléctrica por la
lámpara haremos que se ilumine al 100 %.
Si nos las ingeniamos para que la señal
aplicada a la lámpara se recorte como se ve en la figura siguiente, obtendremos
valores de iluminación entre un 0% y un 100%.

¿Cómo
conseguimos esos recortes en la señal?
1º: Necesitamos una señal de referencia que este situada
en los cero voltios de la señal senoidal.
Si a
la salida del transformador de toma intermedia colocamos un rectificador de
onda completa ( dos diodos 1N4148 ) obtenemos una señal de igual nombre. Esta
señal la atenuamos con un potenciómetro de 47K y la introducimos en un circuito
disparador para transformarla en una señal cuadrada positiva de +5voltios de
amplitud.
2º: Con los flancos de bajada de esos impulsos
situados alrrededor de los cero voltios activaremos la interrupción externa INT
y subiremos la bandera INTF.
A partir de ese instante programaremos pulsos de
tiempo variable que nunca llegarán a tener más duración más allá del siguiente
impulso de referencia y que una vez agotado daremos un impulso pequeño de
disparo del triac.


Fuente de alimentación y circuitos para
obtener la señal de referencia de T= 10 mseg.

Circuito de botones UP y
DOWN.
Circuito microcontrolador PIC 16F84A.

Circuito de control del
Triac.

;Proyecto: regulador
de luz.
; Control de la intensidad lumínica de la
lámpara mediante
; el sistema de recorte o graduador de fase. Cada 10
mseg.
; tenemos el paso de la señal rectificada en doble
onda por
; cero. A partir de hay introducimos temporizaciones
que al
; acabar nos indicará el instante para disparar el
triac,
; siempre antes de que llegue otro impulso de paso
por cero.
;
; Condiciones de funcionamiento según se empiece a
pulsar el
; botón UP o DOWN:
; * Al conectarse el montaje la lámpara está
apagada.
; * Si toco el botón UP se enciende lámpara al 100%
y con dicho
; botón puedo bajar la intensidad de
luz hasta llegar al 0%.
; Con el botón DOWN a partir de ese 0%
puedo ir incrementando
; la intensidad de la luz hasta el
100%.
; * Si una vez conectado el montaje (lámpara
apagada) tocó el
; botón DOWN la luz irá aumentado
progresivamente de 0% al 100%.
; Al llegar al 100% con el botón UP
puedo ir disminuyendo la
; intensidad de luz hasta llegar al 0%
;----------------------------------------------------------------------------------
;PIC 16F84A/ 4 MHz/
;Bits de
configuración para el programador:
;CP(protección de la
memoria de código):..............................No
;PWRTE(activación
del temporizador "Power-up"):..............No
;WDTE(activación del
"perro guardián"):...............................No
;FOSC1-FOSC0(tipo de
oscilador):........................................Xtal
;-----------------------------------------------------------------------------------
;PROGRAMA
LIST p=16f84A
INCLUDE "p16f84A.inc"
ORG 00h
goto inicio
inicio
ORG 10h
;Configurar el
puerto B (RB4 salida).
call banco1
bcf TRISB,4 ;El
Puerto RB4 como salida
call banco0
bcf
PORTB,4 ;pongo a cero el Puerto RB4
;Configurar la INT.
call banco1
bcf OPTION_REG,INTEDG ;flanco de bajada de la INT
call banco0
programa
movlw 00h
movwf 20h
progra1
btfss INTCON,INTF
goto progra1
bcf INTCON,INTF
call varia
call disparo
call up
call down
goto progra1
;--------------------------------------------------
;Subrutinas de los
botones UP-DOWN.
;---------------------------------------------------
up
btfss PORTB,2 ;testeo el puerto RB2 y si vale uno salto
goto saltu1
incf 20h,1 ;incremento
el registro 20h
bcf STATUS,C ;corrección para no llegar a FFh, solo
llego
;hasta
F1h
movlw 0fh
addwf 20h,0
btfss
STATUS,C
goto
saltu1
movlw 0f1h
movwf 20h
saltu1
return
down
btfss PORTB,3 ;testeo
el puerto RB3 y si vale uno salto
goto saltu3
decf 20h,1 ;decremento
el registro 20h
bcf STATUS,C ;corrección para no llegar a 00h, sólo
llego
;hasta
0Fh
movlw 0f1h
addwf 20h,0
btfss
STATUS,C
goto
saltu2
return
saltu2
movlw 0fh
movwf
20h
saltu3
return
;------------------------------------
;Disparo del triac:
225 useg.
;------------------------------------
,Pulso de disparo de
225 microsegundos necesarios para activar el triac
disparo
bsf PORTB,4
call usg225
bcf PORTB,4
return
usg225
movlw
4bh
movwf
30h
sal4
decfsz
30h,1
goto sal4
return
;-----------------------------------------------
;Retardo variable
después de la INT.
;-----------------------------------------------
;El tiempo entre que
se activa la bandera INTF es de 10mseg (10.000 microsegundos)
Si un registro (21h)
lo cargo con un valor comprendido entre 01h y FFh y lo voy decrementando hasta
llegar a cero con un retardo fijo de unos 25 microsegundos entre medias puedo
conseguir unos pocos microsegundos o los 10.000 microsegundos.
varia
movf 20h,0
movwf 21h
salte
call usg25
decfsz
21h,1
goto salte
return
usg25
movlw
08h
movwf
31h
sal5
decfsz
31h,1
goto sal5
return
;------------------------------------------
;Subrutinas de
cambios de bancos.
;------------------------------------------
banco0
bcf STATUS,RP0
return
banco1
bsf STATUS,RP0
return
END