Vous êtes sur la page 1sur 8

CONTROL DEL NGULO DE DISPARO EN UN TRIAC, PARA IMPLEMENTAR UN DIMMER

Mediante la interrupcin del TIMER 1 por emparejamiento con el valor del Registro Comparador A se controla el ngulo de disparo del TRIAC, donde los valores de comparacin son obtenidos desde la tabla de constantes, calculadas para tener ngulos de disparo cada 10 grados. Los valores en el Registro de Comparacin cambian secuencialmente mediante las interrupciones externas INT0 e INT1. El arranque del TIMER 1 est sincronizado con los cruces por cero de la seal de 110 Vac.
Pulso de disparo del TIRAC, al producirse la Interrupcin por Comparacin del Timer 1

Para bajar el ngulo de disparo

Detector del cruce por cero, para generar la Interrupcin Externa 2

Para subir el ngulo de disparo

CIRCUITO PARA EL CONTROL DEL NGULO DE DISPARO DEL TRIAC PROGRAMA PARA EL DIMMER CON EL ATMEGA16
.NOLIST .INCLUDE "m16def.inc" .LIST ; .DEF AUX1 = R16 .DEF AUX2 = R17 .DEF AUX3 = R18 ; .DSEG ; .CSEG JMP PROGP

JMP JMP

INTE0 INTE1

; .ORG 0x0C ; INTERRUPCIN POR EMPAREJAMIENTO ATMEGA16 INTT1: LDI AUX1,0B00001000 OUT TCCR1B,AUX1 ; PARA ATMEGA16 LDI AUX1,0B00001000 OUT PORTA,AUX1 NOP NOP NOP NOP NOP NOP LDI AUX1,0B00000000 OUT PORTA,AUX1 RETI ; .ORG 0x24 ; INTERRUPCIN EXTERNA 2 PARA ATMEGA16 INTE2: LDI AUX1,0B00001001 OUT TCCR1B,AUX1 ; PARA ATMEGA16 RETI ; INTE0: CPI ZL,LOW((TBLK+16)<<1) BREQ END0 LPM AUX3,Z+ LPM AUX2,Z+ OUT OCR1AH,AUX2 ; PARA ATMEGA16 OUT OCR1AL,AUX3 ; PARA ATMEGA16 END0: RETI ; INTE1: CPI ZL,LOW((TBLK+1)<<1) BREQ END1 DEC ZL DEC ZL DEC ZL DEC ZL LPM AUX3,Z+ LPM AUX2,Z+ OUT OCR1AH,AUX2 ; PARA ATMEGA16 OUT OCR1AL,AUX3 ; PARA ATMEGA16 END1: RETI ; PROGP: ; UBICACIN DEL STACK AL FINAL DE LA SRAM LDI AUX1,LOW(RAMEND) OUT SPL,AUX1 LDI AUX1,HIGH(RAMEND) OUT SPH,AUX1 ; CONFIGURACIN COMO SALIDA (PA3)

; ; ; ; ; ;

; ; ; ; ;

; ; ;

; ; ; ;

LDI AUX1,0B00001000 OUT DDRA,AUX1 PULL-UP EN LAS ENTRADAS INT0 e INT1 (PD2 y PD3) LDI AUX1,0B00001100 OUT PORTD,AUX1 PULL-UP EN LA ENTRADA INT2 (PB2) LDI AUX1,0B00000100 OUT PORTB,AUX1 PROGRAMACION DEL TIMER1 COM1A1:0=00 DESCONECTADA DE LA SALIDA OC1A (PD5) COM1B1:0=00 DESCONECTADA DE LA SALIDA OC1B (PD4) FOC1A:0=1 OBLIGA A COMPARACIN CON OCR1A FOC1B:0=0 NO OBLIGA A COMPARACIN CON OCR1B WGM11:0=00 CONFIGURACIN CTC (MODO 4) LDI AUX1,0B00001000 OUT TCCR1A,AUX1 ; PARA ATMEGA16 ICNC1=0 DESHABILITA CANCELACIN DE ICES1=0 TRANSICIN NEGATIVA PARA LA ENTRADA DE CAPTURA BIT5=0 BITS RESERVADO WGM13:2=01 CONFIGURACIN CTC (MODO 4) CS12:0=001 RELOJ DETENIDO LDI AUX1,0B00001000 OUT TCCR1B,AUX1 ; PARA ATMEGA16 VALOR A COMPARAR EN OCR1A (ESCRITURA DE 16 BITS) LDI ZL,LOW((TBLK+16)<<1) LDI ZH,HIGH((TBLK+16)<<1) LPM AUX3,Z+ LPM AUX2,Z+ OUT OCR1AH,AUX2 ; PARA ATMEGA16 OUT OCR1AL,AUX3 ; PARA ATMEGA16 HABILITA INTERRUPCIN POR EMPAREJAMIENTO EN COMPARACIN A LDI AUX1,0B00010000 ; PARA ATMEGA16 OUT TIMSK,AUX1 ; PARA ATMEGA16 SEALES PARA INTERRUPCIONES EXTERNAS ISC11:0=10 INTERRUPCIN EXTERNA 1 TRANSICIN NEGATIVA ISC01:0=10 INTERRUPCIN EXTERNA 0 TRANSICIN NEGATIVA LDI AUX1,0B00001010 ; PARA ATMEGA16 OUT MCUCR,AUX1 ; PARA ATMEGA16 ISC2 = 0 INTERRUPCIN EXTERNA 2 TRANSICIN NEGATIVA LDI AUX1,0B00000000 ; PARA ATMEGA16 OUT MCUCSR,AUX1 ; PARA ATMEGA16 HABILITACIN INTERRUPCIONES EXTERNAS INT1=1 INTERRUPCIN EXTERNA 1 DESHABILITADA INT0=1 INTERRUPCIN EXTERNA 0 DESHABILITADA INT2=0 INTERRUPCIN EXTERNA 2 HABILITADA LDI AUX1,0B11100000 ; PARA ATMEGA16 OUT GICR,AUX1 ; PARA ATMEGA16 SEI ; HABILITACIN GLOBAL DE INTERRUPCIONES RJMP LOOP

; LOOP:

; CONSTANTES DE LOS TIEMPOS EN MICROSEGUNDOS PARA CADA 10 GRADOS TBLK: .DW 463,926,1389,1859 .DW 2315,2778,3241,3704,4167 .DW 4630,5093,5556,6019,6482 .DW 6945,7408,7871,8334,0 .EXIT ; FIN DEL MODULO FUENTE

RESULTADOS OBTENIDOS

SEALES EN EL CIRCUITO CANAL CANAL CANAL CANAL A: En el terminal del TRIAC que se une con la carga B: A la salida del rectificador de onda completa C: En la Interrupcin Externa 2 (Deteccin del cruce por cero) D: En el nodo del LED del opto acoplador (Disparo del TRIAC) Para tener como punto de referencia del osciloscopio virtual en el simulador y para la simulacin misma, es necesario conectar el otro lado de la carga, que se conecta con la fuente de 110 Vac, a GND.

Esta conexin no debe existir en el circuito real, para tener un verdadero aislamiento entre el circuito digital y la fuente de voltaje alterno

SEALES CON OTROS NGULOS DE DISPARO

El cdigo del programa anterior como est documentado, sirve para los microcontroladores ATMEGA16. A continuacin se encuentra el cdigo del mismo programa para los microcontroladores ATMEGA164P, tomando en cuenta las diferencias que existen entre los dos tipos de microcontroladores en la ubicacin de algunos de los Vectores Interrupcin, de los Registros y de las posiciones que ocupan los Bits; que inclusive en ciertos casos cambian de nombre. PROGRAMA PARA EL DIMMER CON EL ATMEGA164P
.NOLIST .INCLUDE "m164pdef.inc" .LIST ; .DEF AUX1 = R16 .DEF AUX2 = R17 .DEF AUX3 = R18 ; .DSEG ; .CSEG JMP PROGP JMP INTE0 JMP INTE1 JMP INTE2 ; PARA ATMEGA164P ; .ORG 0x1A ; INTERRUPCIN POR EMPAREJAMIENTO ATMEGA164P INTT1: LDI AUX1,0B00001000 STS TCCR1B,AUX1 ; PARA ATMEGA164P LDI AUX1,0B00001000 OUT PORTA,AUX1 NOP NOP NOP NOP NOP NOP LDI AUX1,0B00000000 OUT PORTA,AUX1 RETI ; INTE2: LDI AUX1,0B00001001 STS TCCR1B,AUX1 ; PARA ATMEGA164P RETI ; INTE0: CPI ZL,LOW((TBLK+16)<<1) BREQ END0 LPM AUX3,Z+ LPM AUX2,Z+

END0: ; INTE1:

STS STS RETI CPI BREQ DEC DEC DEC DEC LPM LPM STS STS RETI

OCR1AH,AUX2 OCR1AL,AUX3

; PARA ATMEGA164P ; PARA ATMEGA164P

ZL,LOW((TBLK+1)<<1) END1 ZL ZL ZL ZL AUX3,Z+ AUX2,Z+ OCR1AH,AUX2 OCR1AL,AUX3

; PARA ATMEGA164P ; PARA ATMEGA164P

END1: ; PROGP: ; UBICACIN DEL STACK AL FINAL DE LA SRAM LDI AUX1,LOW(RAMEND) OUT SPL,AUX1 LDI AUX1,HIGH(RAMEND) OUT SPH,AUX1 ; CONFIGURACIN COMO SALIDA (PA3) LDI AUX1,0B00001000 OUT DDRA,AUX1 ; PULL-UP EN LAS ENTRADAS INT0 e INT1 (PD2 y PD3) LDI AUX1,0B00001100 OUT PORTD,AUX1 ; PULL-UP EN LA ENTRADA INT2 (PB2) LDI AUX1,0B00000100 OUT PORTB,AUX1 ; PROGRAMACION DEL TIMER1 ; COM1A1:0=00 DESCONECTADA DE LA SALIDA OC1A (PD5) ; COM1B1:0=00 DESCONECTADA DE LA SALIDA OC1B (PD4) ; FOC1A:0=1 OBLIGA A COMPARACIN CON OCR1A ; FOC1B:0=0 NO OBLIGA A COMPARACIN CON OCR1B ; WGM11:0=00 CONFIGURACIN CTC (MODO 4) LDI AUX1,0B00001000 STS TCCR1A,AUX1 ; PARA ATMEGA164P ; ICNC1=0 DESHABILITA CANCELACIN DE ; ICES1=0 TRANSICIN NEGATIVA PARA LA ENTRADA DE CAPTURA ; BIT5=0 BITS RESERVADO ; WGM13:2=01 CONFIGURACIN CTC (MODO 4) ; CS12:0=001 RELOJ DETENIDO LDI AUX1,0B00001000 STS TCCR1B,AUX1 ; PARA ATMEGA164P ; VALOR A COMPARAR EN OCR1A (ESCRITURA DE 16 BITS) LDI ZL,LOW((TBLK+16)<<1) LDI ZH,HIGH((TBLK+16)<<1) LPM AUX3,Z+

; ; ; ;

; ; ; ;

LPM AUX2,Z+ STS OCR1AH,AUX2 ; PARA ATMEGA164P STS OCR1AL,AUX3 ; PARA ATMEGA164P HABILITA INTERRUPCIN POR EMPAREJAMIENTO EN COMPARACIN A LDI AUX1,0B00000010 ; PARA ATMEGA164P STS TIMSK1,AUX1 ; PARA ATMEGA164P SEALES PARA INTERRUPCIONES EXTERNAS ISC11:0=10 INTERRUPCIN EXTERNA 1 TRANSICIN NEGATIVA ISC01:0=10 INTERRUPCIN EXTERNA 0 TRANSICIN NEGATIVA ISC21:0 = 10 INTERRUPCIN EXTERNA 2 TRANSICIN NEGATIVA LDI AUX1,0B00101010 ; PARA ATMEGA164P STS EICRA,AUX1 ; PARA ATMEGA164P HABILITACIN INTERRUPCIONES EXTERNAS INT1=1 INTERRUPCIN EXTERNA 1 DESHABILITADA INT0=1 INTERRUPCIN EXTERNA 0 DESHABILITADA INT2=1 INTERRUPCIN EXTERNA 2 HABILITADA LDI AUX1,0B00000111 ; PARA ATMEGA164P OUT EIMSK,AUX1 ; PARA ATMEGA164P SEI ; HABILITACIN GLOBAL DE INTERRUPCIONES

; LOOP: RJMP LOOP ; CONSTANTES DE LOS TIEMPOS EN MICROSEGUNDOS PARA CADA 10 GRADOS TBLK: .DW 463,926,1389,1859 .DW 2315,2778,3241,3704,4167 .DW 4630,5093,5556,6019,6482 .DW 6945,7408,7871,8334,0 .EXIT ; FIN DEL MODULO FUENTE