nota tÉcnica file save as namecerescontrols.com/wp-content/uploads/2013/06/01-nt1002... · web...
TRANSCRIPT
NT1001
El control de una carga de corriente alterna no se realiza de manera parecida al control de una carga DC, si bien es cierto, el control es un poco más complejo, pues se necesita primeramente sensar el cruce por cero de la señal alterna para tener la referencia exacta de cuando empezar a controlar nuestra carga (foco, motor, bomba, etc.).
Con una pequeña modificación, este circuito se puede utilizar para controlar motores AC; en este caso, se controla una carga resistiva (foco) la cual puede variarse la intensidad de luz que emita dependiendo del valor de variación del ADC.
Para controlar una carga AC, se utiliza un Triac, que es un dispositivo específico para corriente alterna.
Primeramente se tabulará una lista de los materiales a utilizar, seguido del esquemático con las ecuaciones de diseño del circuito más una breve explicación del software con su diagrama de flujo, se presentará una conclusión de las fallas y la referencia utilizada por si se requiere bibliografía referente al tema.
Advertencia: Trabaje este experimento con la supervisión de alguien con experiencia. El experimento posee algunas secciones de alto voltaje.
F.I.E., C.D.P., 2004 NT0001
Notas Técnicas de Uso y Aplicación
CONTROL DEL ÁNGULO DE DISPARO – CARGA RESISTIVAPara Microcontroladores de la Familia HC08
Preparado por: Rangel AlvaradoEstudiante Graduando de Lic. en Ing. ElectromecánicaUniversidad Tecnológica de PanamáPanamá, Panamá
AA.1 Introducción
ÍNDICEAA.1 Introducción A-1AA.2 Materiales A-2AA.3 Esquemático y Ondas de la Aplicación A-3AA.4 Código A-5AA.5 Conclusión A-10AA.6 Referencias A-11
Nota Técnica
1. Transformador de 117/6 con derivación central2. Diodos: 2 1n41483. Resistores: 2 5.1k; 1 6.8k; 1 180; 1 470; todos de ¼ de Watt4. Transistores: 2 2n22225. Tarjeta de Desarrollo TD68HC908JL3 o similar6. Optoacoplador: 1 MOC30107. Triac: 1 2n60738. Lámpara incandescente9. Plantilla de proyectos: Breadboard JE27, Jameco Part No: 2081110. Fuente de Poder11. Alambres AWG 2012. Pelador de Alambres
(1) (2) (3) (4)
(5) (6) (7) (8)
(9) (10) (11) (12)
Figura AA.1. Materiales a utilizar en el detector de cruce cero.
NT1001
Rev. 1 del 22.05.04 AA-2
AA.2 Materiales
120V~ 60Hz
CT-XFMR Rectif ier
1208.22
8.22C3
0.1uFS1
C222uF
C122uF
XTAL14.9152MHZ
D4DIODE
D3DIODE
R1110M
R1010k 40%
R13470
R12180
L1
+V
V85V
MOC3010
Q8TRIAC
AC
AC
IRQVss
OSC1OSC2
VddPB7PB6PB5PD7PD6PB4
PB3PB2PB1PB0PD3PD2PD5PD4RST
U4MC68HC908JK3
Q22N2222A
Q12N2222A
60 Hz
V1-170/170V 10TO1CT
+V
R3
5.1k
R25.1k
R66.8k
R3 = (2Vs/ - 3V)/Ibase
R3 = 5.3k o menor
R6 = (2Vs/ - V)/Id
R6 = 7.4k o menorG
MT2
MT1
AA.3.1 EsquemáticoNota: Advertencia, este circuito posee partes de alto voltaje, trabaje bajo la supervisión de alguien con experiencia.
V = 0.7 @ Id = 1mA (ver data del fabricante). Vs = Vrms 2; Ibase asumida a 1mA.
(a) Cruce Cero Optoacoplador
Arreglo Pin 28 Pin 1 Darlington
(-)CuidadoAlto Voltaje
Cuidado, Alto voltaje
(-)
Resistencia de carga
Rectificador de Onda Completa Reset del microcontrolador Circuito de Oscilador de Cristal
Figura AA.2. Esquemático de Control de Carga Resistiva. (a) Detector de Cruce por cero. La señal de cruce cero es un pulso menor al milisegundo, ver figura AA.3(a). (b) Interfase entre Control y Potencia. Se utiliza el optoacoplador y el triac para controlar una lámpara incandescente, ver onda en la figura AA.3(c). Con una pequeña modificación se puede tener control de una carga inductiva.
F.I.E., C.D.P., 2004 NT0001
AA.3 Esquemático y Ondas de la Aplicación
Figura AA.3. Formas de Onda de la Aplicación. (a) Detección de Cruce por Cero. El pulso por cero avisa cuando se debe empezar a controlar la onda de voltaje. (b) Pulso de Activación del Triac. Luego de que el triac es activado, se mantiene hasta que su corriente (I HO) o su voltaje (VGT) disminuyan de un valor mínimo. (c) Disparo del triac (10%). El tiempo de retardo es el tiempo en que el triac permanece inactivo. El tiempo de disparo es el tiempo total de encendido del triac. (d) Disparo del triac (50%). Se varía el ancho de pulso con el triac a 50% de disparo. (e) Disparo del triac (90%). Control del triac variando otro ángulo de disparo.
Nota Técnica
AA.3.2 Forma de Ondas
Onda CompletaPulso de Activación del Tríac Tiempo Tiempo
de de Retardo Disparo
Pulso de Cruce cero 10% de disparo
(a) (b) (c)
50% de Disparo 90% de Disparo
(d) (e)
Rev. 1 del 22.05.04 AA-4
;================================================================;; FILE : NT1002 - Control de Carga Resistiva - 23 05 04.asm; PURPOSE : Controlar el ángulo de disparo de una carga resistiva; realizando un Dimmer de lámpara incandescente;; LANGUAGE : IN-LINE ASSEMBLER; ----------------------------------------------------------------------------; HISTORY; DD MM YY; 05 03 04 Created.; 23 05 04 Last Modification.;================================================================;
;=============================================;; Igualdades Numéricas, números de bits y configuración de ;; registros ;;=============================================;COPD equ 0T ; Bit 0 del registro CONFIG1NULL equ 0T ; Valor vacíoBIT4 equ 4T ; TSC, Bit de Reinicio del temporizadorBIT5 equ 5T ; TSC, Bit de Inicio de Conteo, Bit 5 ONBIT6 equ 6T ; TSC, Bit de Habilitación de interrupciónBIT7 equ 7T ; Bit 7 del registro del Puerto DCH0IE equ $40 ; TSC0, Habilita Interrupciones, Bit 6 ONCH1IE equ $40 ; TSC0, Habilita Interrupciones, Bit 6 ONELS0B equ $08 ; TSC0, Detector de Borde de Bajada, Bit 3 ONELS0A equ $04 ; TSC0, Detector de Borde de subida, Bit 2 ONELS1A equ $04 ; TSC0, Detector de Borde de subida, Bit 2 ONMS1A equ $10 ; Bandera de modo de selección, canal 1 del TIMTRST equ %00010000 ; TSC, Bit de Reinicio de conteo, Bit 4 ONTSTOP equ %00100000 ; TSC, Bit de Pausa de conteo, Bit 5 ONCH2 equ %00000100 ; ADSCR, Bit de Canal 0, Bit 2 ONCH1 equ %00000010 ; ADSCR, Bit de Canal 0, Bit 1 ONCH0 equ %00000001 ; ADSCR, Bit de Canal 0, Bit 0 ONADC7 equ CH2|CH1|CH0 ; ADSCR, PTB7 = ADCADIV1 equ %01000000 ; ADIV1, Bit 6 ONADCO equ %00100000 ; ADSCR, Bit de Conversión Continua, Bit 5 ONCOCO equ 7T ; Bit de Conversión completaSTEP equ $27 ; Incrementos del ADRRAM_ORIGIN equ $0080 ; Inicio de la memoria RAMRAM_USED equ $00FE ; Fin de limpieza de la RAMRAM_START equ RAM_ORIGIN ; Inicio de la Memoria RAM
;=============================================;; I/O Registers ;;=============================================;PORTD equ $0003 ; Registro del Puerto DDDRD equ $0007 ; Registro de Direccionamiento del Puerto DCONFIG1 equ $001F ; Vectores de configuración
;=============================================;; TIM Registers ;;=============================================;TSC equ $0020 ; Dirección, registro de estado y control del TIM
F.I.E., C.D.P., 2004 NT0001
AA.4 Código
Nota TécnicaTCNTH equ $0021 ; TCNT, Registro almacenador de cuenta del
; módulo, registro alto.TCNTL equ $0022 ; TCNT, Registro almacenador de cuenta del módulo,
; registro bajo.TMODH equ $0023 ; TMODH, Registro de cuenta del módulo, registro
; alto.TMODL equ $0024 ; TMODL, Registro de cuenta del módulo, registro
; bajo.TSC0 equ $0025 ; Dirección, registro de estado y control del canal 0 del
; TIMTCH0H equ $0026 ; Dirección alta, registro del Canal 0 del TIMTCH0L equ $0027 ; Dirección baja, registro del Canal 0 del TIMTSC1 equ $0028 ; Dirección, registro de estado y control del canal 1 del
; TIMTCH1H equ $0029 ; Dirección alta, registro del Canal 1 del TIMTCH1L equ $002A ; Dirección baja, registro del Canal 1 del TIM
;=============================================;; ADC Registers ;;=============================================;ADSCR equ $003C ; Dirección, registro de estado y control del
; ADCADR equ $003D ; Registro de Datos del ADCADICLK equ $003E ; Registro de Reloj de Entrada del ADC
;=============================================;; Flash Memory ;;=============================================;FLASH_START equ $EC00 ; Puntero - Mem.FLASH
;=============================================;; Vectores de Usuario ;;=============================================;TIMOFH equ $FFF2 ; Sobreflujo del TIM (Alto)TIMCH1H equ $FFF4 ; Sobreflujo del TIM (Alto)TIMCH0H equ $FFF6 ; TIM Canal 0 (Alto)RESET_VEC equ $FFFE ; Puntero del RESET
;=============================================;; OBJETIVO: Almacena variable de Conteo de pulsos ;;=============================================; org RAM_STARTCOUNTER equ $80 ; Contador de pulsos cero
;=============================================;; OBJETIVO: Inicio de Codif. del Ensamblador en Memoria ;; FLASH. ;;=============================================; org FLASH_START ; Inicio Mem. FLASH
;=============================================;; OBJETIVO: Configura los módulos del micro para utilizar ;; captura de flancos, variar el ancho de pulso y el ADC ; ;=============================================;
NT1001
Rev. 1 del 22.05.04 AA-6
Nota Técnica Sistemas Numéricos
START rsp ; Inic.Stack = $00ff bset COPD,CONFIG1 ; Desactiva watchdog jsr CLEAR_GLOBAL ; Borra los registros al ; simulador no le simpatizan ; registros no inicializados. jsr INIT_PORTS ; Subr,Inic. PUERTO jsr INIT_ADC ; Inicializa ADC jsr INIT_TIM ; Inicializa TIM cli ; Habilita Interrupciones bclr BIT5,TSC ; Inicia la cuenta del temporizadorESPERA wait bra ESPERA ; Salta al modo de bajo consumo
;=============================================;; CLEAR_GLOBAL: Borra la Ram utilizada y registros ;; inherentes ;; OBJETIVO: Borra registros ;; ENTRADA: RAM_ORIGIN, RAM_USED ;; SALIDA: A, H:X y RAM en 0 ;; REGISTROS AFECTADOS: RAM, H:X, A ;; SECCIONES UTILIZADAS: Ninguna ;; EJEMPLO: ;; Entrada RAM_ORIGIN = 0080, RAM_USED = 0090 ;; X = 7 ;; Salida: 0080 @ 0087 = 0 ;;=============================================;CLEAR_GLOBAL ; Borra registros a usar ldx #RAM_ORIGIN ; Carga con el origenFILL_EMPTY clr ,x ; rellena con "0" la posición actual incx ; incrementa puntero de RAM cphx #RAM_USED ; Compara hasta el final deseado bne FILL_EMPTY ; Si no concuerda entonces sigue limpiando clra ; Borra A clrh ; Borra H clrx ; Borra X rts ; retorna
;=============================================;; INIT_PORTS: Inicializa variables y registros. ;; OBJETIVO: Inicializa el pin de activación del ;; optoacoplador en alto. ;; PORTD7 = OUTPUT ;; ENTRADA: Ninguna ;; SALIDA: Ninguna ;; REGISTROS AFECTADOS: DDRD, PORTD ;;=============================================;INIT_PORTS mov #NULL,PORTD ; El puerto D es inicializado a bajo ; y configurado por defecto como entrada bset BIT7,PORTD ; Pulso en alto bset BIT7,DDRD ; Fija PD7 = Salida
NT1001
Rev. 1 del 22.05.04AA-7
Nota Técnica rts ; retorna
;=============================================;; INIT_ADC: Inicializa el ADC ;; OBJETIVO: Conversión Continua e Interrupciones ;; ADC utilizado para variar el disparo. ;; ENTRADA: Ninguna ;; SALIDA: Ninguna ;; REGISTROS AFECTADOS: ADSCR, ADICLK ;;=============================================;INIT_ADC mov #ADIV1,ADICLK ; Reloj del ADC = XTAL/2^ADIV1 mov #{ADCO|ADC7},ADSCR ; Conversión Contínua en PTB5 brclr COCO,ADSCR,* ; Espera la primera conversión rts ; retorna
;=============================================;; INIT_TIM: Inicializa el TIM ;; OBJETIVO: Inicialización del temporizador en modo de ;; captura de flancos. ;; ENTRADA: Ninguna ;; SALIDA: Ninguna ;; REGISTROS AFECTADOS: TSC, TMODH, TMODL ;;=============================================;INIT_TIM mov #{TRST|TSTOP},TSC ; Interrupciones habilitadas, temporizador ; detenido y reiniciado ldhx #NULL ; Carga con cero (0) sthx TCH0H ; Inicializa el registro con cero (0) sthx TCH1H ; Inicializa el registro con cero (0) mov #{CH0IE|ELS0A},TSC0 ; Detecta el flanco de subida rts ; retorna
;=============================================;; POT_PWM: Varía el ancho con el pot. ;; OBJETIVO: Incrementa en anchos de pulso ;; razonables de 1 a 99% ;; ENTRADA: Ninguna ;; SALIDA: Ninguna ;; REGISTROS AFECTADOS: RAM, ADR, TCH0[H:L] ;;=============================================;POT_PWM lda ADR ; de lo contrario, leo el registro ldx #STEP ; X es el valor incremental mul ; Multiplica A*X stx TCH1H ; Almacena los resultados en TCH0H sta TCH1L ; y TCH0LTIMOUT rts ; retorna
;=============================================;; TIMCH0L: Interrupción del TIM - CH0 ;; OBJETIVO: Envía la señal de disparo al ;; optoacoplador para disparar ;; el triac. ;
NT1001
Rev. 1 del 22.05.04 AA-8
Nota Técnica Sistemas Numéricos
; ENTRADA: Ninguna ;; SALIDA: Ninguna ;; REGISTROS AFECTADOS: TSC1, PORTD ;;=============================================;TIMCH1L bclr BIT7,TSC1 ; Reconoce la interrupción bclr BIT7,PORTD ; Pulso de activación del LED nop ; No hago nada nop ; Espero a que se estabilice el nop ; LED del optoacoplador nop ; para encender el triac bset BIT7,PORTD ; Desactivo el pulso de activación rti ; retorno
;=============================================;; TIMCH0L: Interrupción del TIM - CH0 ;; OBJETIVO: Inicializa el TIM para ;; ENTRADA: Ninguna ;; SALIDA: Ninguna ;; REGISTROS AFECTADOS: TSC, TSC0 ;;=============================================;TIMCH0L bset BIT4,TSC ; Reinicia TIM lda COUNTER ; A = variable de conteo
; NO CUENTA MÁS, INICIALIZACIÓN COMPLETA cmp #3 ; Es 3? beq OUTTIM ; SI, sal de la interrupción ; HABILITA INTERRUPCIÓN DEL CANAL ; PARA DISPARAR LA LÁMPARA cmp #2 ; Es 2? bne SECTION1 ; NO, ve a la sección 1 mov #{CH1IE|MS1A|ELS1A},TSC1 ; Interrupción y OC habilitados bset BIT6,TSC ; Habilita interrupción del canal jsr POT_PWM ; Valor inicial del pot visualizado en el foco inc COUNTER ; Incrementa variable bra OUTTIM ; Sal de la interrupción ; ALMACENA EL PERIODO DE DISPAROSECTION1 cmp #1 ; Es 1? bne SECTION0 ; NO, ve a la sección 0 ldhx TCH0H ; Almaceno TCH0H sthx TMODH ; como mi periodo repetitivo de disparo inc COUNTER ; Incrementa variable bra OUTTIM ; sal de la interrupción ; CONTEO REINICIADO, ACTUALIZA VARIABLESECTION0 cmp #0 ; Es 0? bne OUTTIM ; NO, sal de la interrupción inc COUNTER ; Incrementa conteoOUTTIM bclr BIT7,TSC0 ; Reconoce la interrupción (CH0F = 0) rti ; retorna
NT1001
Rev. 1 del 22.05.04AA-9
Nota Técnica
;=============================================;; TIMOFL: Interrupción del TIM ;; OBJETIVO: Revisar el valor del Pot para ;; ENTRADA: Ninguna ;; SALIDA: Ninguna ;; REGISTROS AFECTADOS: TSC ;;=============================================;TIMOFL bclr BIT7,TSC ; Reconozco la interrupción, TOF = 0 jsr POT_PWM ; Revisa si se varía el ancho de pulso rti ; retorna de la interrupción
;=============================================;; OBJETIVO: Inicializa el Vector de Reset ;; Arranque del programa en la memo- ;; ria Flash y búsqueda de las inte- ;; rrupciones del canal de temporiza ;; dor. ;;=============================================;;===== Vector del Timer, desborde de la tecla =======; org TIMOFH ; Timer dw TIMOFL ; Desborde del contador;===== Vector del canal 1 del temporizador, Pulso del Optoacoplador =======; org TIMCH1H ; Interrupción del Canal 1 dw TIMCH1L ; Sobreflujo del Canal en PWM;===== Vector del canal 0 del temporizador, Captura de Entrada =======; org TIMCH0H ; Interrupción del Canal 0 dw TIMCH0L ; Captura de flanco Ascendente o Descendente;===== Vector de Reinicio de Sistema =======; org RESET_VEC ; Puntero Vec - RESET dw START ; al darse reset salta a Start
El control de ángulo de disparo y su circuito son útiles no solo para el control de intensidad de una carga resistiva, sino que también se utiliza este método de control para regular la velocidad de un motor de corriente alterna. Por medio de elementos de estado sólido como el triac y el optoacoplador se puede hacer una interfase aislada sin problemas de daños colaterales y control de grandes cargas AC.
NT1001
Rev. 1 del 22.05.04
A.5 Conclusión
AA-10
Nota Técnica Sistemas Numéricos
Electrónica Industrial ModernaAutor: Timoty J. MaloneyRecurso: Capítulo 6 – Los Tríacs y Otros Tiristores
AA.7.1 Teoría de Operación de los Tiristores(a) http://es.geocities.com/allcircuits4/tiristores.htm
AA.7.2 Electrónica de Potencia(a) http://www.geocities.com/electronica4/unidad_6.html
NT1001
Rev. 1 del 22.05.04
A.6 Referencias
AA-11