We are using an MOC3041 to trigger the gate of a thyristor (BT155Z-1200TQ). We use the circuit design from the datasheet of the MOC3041 (Figure 12: Inverse−Parallel SCR Driver Circuit).

We detect zero crossing points. After detection, we send a pulse with 2 ms pulse width to enable the optocoupler and thyristors. We can see the output clearly.

The problem is that our load is variable; load current can be between 4 and 60A, which is why we chose a thyristor with a high on-state current.

When the load current increases, the resistor connected between the thyristor gate and optocoupler heats up. How could we prevent this resistor heating issue?

You can see our circuit design below:

Thyristor driving circuit


I tried to simulate the circuit in LTSpice too. If there is delay in the pulse signal thyristor do not give any output to the load even though the pulse is correct. I don't know much about the thyristor but as far as I know, we should be able to add some delays. You can see the output signal(Vrout-red) if there is a delay in the pulse signal

LTspice circuit LTspice output signal when there is delay

Update 2: After receiving feedback from @Mattman944 about MOC3041 having an internal zero-cross detector and if the pulse is not near the zero-cross it is ignored, I changed the optocoupler to MOC3023. the problem is the output signal is not what I was expecting.

I add a 1ms delay to trigger the thyristor after detecting the zero-cross point just to see the voltage signal change at the load. You can see the screen shots belong to the oscilloscope. The yellow signal belongs to the zero-cross point and the blue one belongs to my trigger output to the optocoupler. enter image description here

After confirming these signals I checked the output signal. But it seems somehow corrupted. The blue one belongs to the voltage to be switched by the thyristor and the yellow one belongs to the voltage at the load. enter image description here

What I was expecting is something like the below signal for the load voltage. What could have gone wrong is anybody have any idea? enter image description here

  • \$\begingroup\$ The Thyristor (SCR) that you have chosen has a high gate current threshold, I would expect some heating in R105. If you have a scope current probe, plot the current through R105. If not, look at your load voltage (carefully, be aware of your grounds), you should be able to see the angle at which the SCRs fire. It can't be exactly at zero, the Opto needs some voltage to create enough current to fire the SCRs. \$\endgroup\$
    – Mattman944
    Commented Apr 14, 2023 at 10:52
  • \$\begingroup\$ What voltage is on the resistor? \$\endgroup\$ Commented Apr 14, 2023 at 11:13
  • \$\begingroup\$ @Mattman944 Unfortunately I don't have a current probe. When I check the load voltage everything seems fine since I trigger the thyristor at zero point. After your comment, I add a 2ms delay after zero crossing but there was no output after that. I changed the delay again to 1 ms but same. I don't know what did I do wrong. The trigger pulse to the optocoupler is correct but the output is not. \$\endgroup\$
    – Nihan
    Commented Apr 17, 2023 at 6:25
  • \$\begingroup\$ @TimWilliams The voltage on the R105 resistor change according to the load resistor. If I decrease the load resistor value the voltage on R105 increases \$\endgroup\$
    – Nihan
    Commented Apr 17, 2023 at 6:27

2 Answers 2


The instantaneous power in the resistor is high enough so it can't be ignored when specifying the resistor. But, the average is low enough that you shouldn't feel it.

You want zero crossing, but you still need a slight delay angle before you get enough current to fire the Thyristor/SCR. I used trial and error to find this angle. (approximations used)

You probably have some other issue, you need to see the current in R105 to troubleshoot. Without a current probe, this will be difficult, the resistor has a high potential on both sides.

enter image description here

Show formulas enabled: enter image description here

  • \$\begingroup\$ As I stated before if there is a delay there is no output. What could be the reason? I tried the same thing on LTspice and LTspice also didn't show output if I add some delay to the pulse signal \$\endgroup\$
    – Nihan
    Commented Apr 17, 2023 at 6:29
  • \$\begingroup\$ The MOC3041 has an internal zero-cross detector. If the pulse is not near the zero-cross, it is ignored. \$\endgroup\$
    – Mattman944
    Commented Apr 17, 2023 at 14:14
  • \$\begingroup\$ I see!! I was not aware of that. Thank you for letting me know. Tomorrow I will use another optocoupler and let you know the results. \$\endgroup\$
    – Nihan
    Commented Apr 17, 2023 at 15:16

When you replace R105 with 4k7, will the thyristor still fire? In my simulation there is a short pulse (a few microseconds) of 900mA with a 330 ohm resistor. The BT155 needs a gate trigger of 50mA.
In my simulation a 4k7 creates a microsecond pulse of 70mA.
The 330 ohm resistor in the application schematic might have been chosen to work with every triac or thyristor.

  • \$\begingroup\$ I didn't try 4k7 but I did increase the resistor a little. Yes, the increase of voltage decreases if I use a higher resistor value for R105 but the thing is some loads get affected by it I tried it at the beginning when I realized this problem. Since I won't be able to use the components today I will try it again and share the results with you after tomorrow. \$\endgroup\$
    – Nihan
    Commented Apr 17, 2023 at 6:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.