anotherbrick
Full Member level 4
- Joined
- Jan 10, 2009
- Messages
- 217
- Helped
- 1
- Reputation
- 2
- Reaction score
- 1
- Trophy points
- 1,298
- Location
- Istanbul , Turkey
- Activity points
- 3,143
help! - triac dimmer circuit firing parasiticaly
hello dear forum,
I try to build the following triac dimmer
which controls the power input to a 2 KW 28 KHz ultrasonic inverter
the ISIS circuit detects the zero crossing of the mains
and I divide the 180 Degree of sinus voltage into 100
everything is fine until the firing angle is above %80
if the firing angle is above %80 the triac is parasiticaly fired at zero angle 2-3 times a second
the zero cross dedector of the dimmer is the rising edge of the ISIS circuit
and to be safe I also start a timer with the rising edge and enable the next zero crossing
as soon as the timer is 250 uS close to the next rising edge
( sorry this is my best english - I hope you understand what I mean)
here is the code
please help me to eliminate the parasitic firing of the triac
thank you
hello dear forum,
I try to build the following triac dimmer
which controls the power input to a 2 KW 28 KHz ultrasonic inverter
the ISIS circuit detects the zero crossing of the mains
and I divide the 180 Degree of sinus voltage into 100
everything is fine until the firing angle is above %80
if the firing angle is above %80 the triac is parasiticaly fired at zero angle 2-3 times a second
the zero cross dedector of the dimmer is the rising edge of the ISIS circuit
and to be safe I also start a timer with the rising edge and enable the next zero crossing
as soon as the timer is 250 uS close to the next rising edge
( sorry this is my best english - I hope you understand what I mean)
here is the code
please help me to eliminate the parasitic firing of the triac
thank you
Code:
volatile uint8_t extintena=0;
void EXTI4_IRQHandler(void)
{
/* Clear the Key Button EXTI line pending bit */
EXTI_ClearFlag(EXTI_Line4);
EXTI_ClearITPendingBit(EXTI_Line4);
if(extintena){
TIM7->CNT=0;TIM_Cmd(TIM7, ENABLE);GPIOC->BRR = GPIO_Pin_5;
extintena=0;TIM2->CNT=0;}
}
void TIM2_IRQHandler(void){
TIM_ClearFlag(TIM2, TIM_FLAG_Update);
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
extintena=1;
}
void TIM7_IRQHandler(void){
TIM_ClearFlag(TIM7, TIM_FLAG_Update);
TIM_ClearITPendingBit(TIM7, TIM_IT_Update);
GPIOC->BSRR = GPIO_Pin_5;TIM_Cmd(TIM7, DISABLE);
}