2

To control the average voltage, output by a triac, the controller needs to know the time of the zero crossing. But the circuit for detecting the zero-crossing is a sensor, vulnerable to noise; taking it's input from the mains - same place the thyristor is injecting noise into.

What are some general guidelines for designing a system of 1 zero-cross detector, one micro-controller and several phase-controlled triacs of about 900W each?

Vorac
  • 3,131
  • 5
  • 31
  • 55

1 Answers1

1

You can try to google for the zero-cross detector. It can be done with a transformer or opto-coupler.
http://www.edn.com/design/analog/4368740/Mains-driven-zero-crossing-detector-uses-only-a-few-high-voltage-parts
https://sound-au.com/appnotes/an005.htm

Then you set a ISR at each trigger event that starts a new timer ISR, or you simply have a time interrupt at each 200us and you count for each output required phase delay, at ZC ISR you reset counters.

ISR_ZC():
1. phaseCounter = 0;
2. All Outputs Off
3. Set interrupt at time where phase angle is 160 degrees - ISR_Off()
4. Enable Interrupt ISR every 200us - ISR_Cnt

ISR_Cnt():
phaseCounter = phaseCounter + 1;
if phaseCounter >= setCnt1 then ouput1 = ON;
if phaseCounter >= setCnt2 then ouput2 = ON;
if phaseCounter >= setCnt3 then ouput3 = ON;

ISR_Off():
1. disable ISR_Cnt
2. All outputs off

pipe
  • 14,271
  • 5
  • 44
  • 75
Marko Buršič
  • 23,961
  • 2
  • 20
  • 33