UNAD
ELECTRÓNICA INDUSTRIAL
TRABAJO COLABORATIVO
ESTUDIANTE:
CEA-PLATO
TUTOR:
En este caso, vemos que la onda AC ha perdido el pulso negativo, y todo tiene lógica
en vista de que no existe una sincronización adecuada para el envío del primer pulso
digital.
SEÑALES:
MICROCONTROLADOR PIC16F87
Control de potencia AC por Angulo de Fase usando micro controlador PIC 16f87
VDD R5 R4
10k 10k
C1
Aumenta Angulo
1nF
Disminuye Angulo U1
17 16 X1
RA0 OSC1/CLKIN
18 15
RA1 OSC2/CLKOUT CRYSTAL
1
RA2
2 4
RA3 MCLR
3
RA4/T0CKI
C2
CX0 6
RB0/INT
7
RB1
8 1nF
RB2
9
RB3
10
RB4
11
RB5
12
RB6
13
RB7
PIC16F84A
L1
AC 120V
U1 R9 FASE
1 6
220
AC OUT
120V 1
D2 2 4 2
LED-RED
U3
MOC3021 Q4015L5 TBLOCK-I2
NEUTRO
R8
220
Este es el algoritmo que trabajaríamos:
180° → 8.33ms
45° → ? → (45° * 8.33ms)/180° = 2.08ms
Entonces para cada Angulo el tiempo de disparo debe ser de 0.046ms o 46us
en base a esto tomo las medidas de tiempo.
Programa en Assembler
;********************************************************************************
;POR: ________ SIMACS
;PROGRAMA: ________ ANGEL MARTINEZ
;FECHA: ________ Octubre /14/2012
;SIMULACION: ________ SI
;MONTAJE: ________ CIRCUITO CONTROL
;PARA: ________ ELECTRONICA
;********************************************************************************
;Este programa controla el disparo de una salida cuando hay un cruce por cero
;las salida es RB1 , el cruce por cero es detectado y se inicia la activacion
;de la salida segun sea el angulo de disparo
;interrupcion en RB0 calculos para 60hz
list p=16F87
include "p16F87.inc"
;********************************************************************************
;El registro de opciones del microcontrolador "option"
;********************************************************************************
#define _PS0 OPTION_REG,0 ;Bit 0 de seleccion del preescaler
#define _PS1 OPTION_REG,1 ;Bit 1 de seleccion del preescaler
#define _PS2 OPTION_REG,2 ;Bit 2 de seleccion del preescaler
#define _PSA OPTION_REG,3 ;Asignacion del preescaler a TMR0 o WDT
#define _T0SE OPTION_REG,4 ;Seleccion de tipo de flanco para TMR0
#define _T0CS OPTION_REG,5 ;Seleccion de tipo de reloj para el TMR0
#define _INTEDG OPTION_REG,6 ;Seleccion de flanco de la interrupcion INT
#define _RBPU OPTION_REG,7 ;Actibacion de cargas pull-up para puerta B
;********************************************************************************
;Registro de control de interrupciones del microcontrolador "INTCON"
;********************************************************************************
#define _RBIF INTCON,0 ;Flag de interrupcion de la puerta B
#define _INTF INTCON,1 ;Flag de interrupcion externa INT
#define _T0IF INTCON,2 ;Flag de interrupcion del TMR0
#define _RBIE INTCON,3 ;Habilitacion de interrupcion de la puerta B
#define _INTE INTCON,4 ;Habilitacion de la interrupcion externa INT
#define _T0IE INTCON,5 ;Habilitacion de interrupcion del TMR0
#define _EEIE INTCON,6 ;Habilitacion de interrupcion de la EEPROM
#define _GIE INTCON,7 ;Habilitacion global de interrupciones
;********************************************************************************
;El registro de estado del microcontrolador "STATUS"
;********************************************************************************
#define _C STATUS,0 ;Flag de acarreo
#define _DC STATUS,1 ;Flag de acarreo decimal
#define _Z STATUS,2 ;Flag Z (a "1" si resultado=0)
#define _PD STATUS,3 ;Flag de "power down"
#define _TO STATUS,4 ;Flag de "WDT Timer Out"
#define _RP0 STATUS,5 ;Bit 0 selector de pagina
#define _RP1 STATUS,6 ;Bit 1 selector de pagina
#define _IRP STATUS,7 ;Seleccion de bancos (direcionado indirecto)
;********************************************************************************
ORG 0
GOTO INICIO
org 4
GOTO INTER
;**************************************************************************
INTER BTFSS _INTF ;Verifica interrupcion
GOTO NO_HAY
NO_HAY
BCF _INTF ;restaura para la interrupcion
RETFIE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
R_50mS
MOVWF CONRET ;
CICLO BCF INTCON,2
MOVLW D'60' ;
MOVWF TMR0 ;
EXPLO BTFSS INTCON,2 ;
GOTO EXPLO ;
DECFSZ CONRET,F ;
GOTO CICLO
;
BCF INTCON,2 ;
RETURN ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
R_uS
movwf loops ;de microsegundos del retardo
top1 movlw D'5' ;Para retardo de 40us Aprox
movwf loops2 ;
top2 nop
nop
nop
nop
decfsz loops2,1 ;pregunta si termino 1uS
goto top2
decfsz loops,1 ;pregunta si termina el retardo
goto top1
RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INICIO
BSF _RP0 ;se ubica en el segundo banco de RAM
movlw b'00000011' ;se carga el registro W con 0f
movwf TRISA ;se programan los pines del puerto A segun circuito
movlw b'00000001' ;se carga el registro W con 00
movwf TRISB ;se programan los pines del puerto B segun circuito
movlw b'10000111' ;en el registro OPTION se programa preescala en 256
movwf OPTION_REG ;para el TMRO y el flanco de bajada para el pin INT
BCF _RP0 ;se ubica en el primer banco de memoria RAM
movlw b'10010000' ;en el registro INTCON se habilitan las interrupciones
movwf INTCON ;(GIE) y la interrupción por el pin INT
clrf PORTB
clrf PORTA
movlw d'90' ;Angulo predeterminado de inicio
movwf Angf
;******************************************************************************
Angulo ;seleccino el angulo de disparo de la señal
call Act_INT
_UP
btfss PORTA,0
goto _DW
call Des_INT
movlw d'2' ;retardo anti_rebote de 100ms
call R_50mS
btfss PORTA,0 ;verifica Pulso
goto Angulo
Des_INT
movlw b'10000000' ;en el registro INTCON se Deshabilitan las interrupciones
movwf INTCON ;por el pin INT
return
BIBLIOGRAFIA
http://www.academia.edu/15458402/Electronica_industrial
https://addi.ehu.es/bitstream/handle/10810/17735/maseda-10-2015-
ik.pdf;jsessionid=585CA59F30868876A3BF0905D17A85C8?sequence=1