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