As per the title of this question i'm trying to control an ac resistive load. So far i had little success and i'm experiencing "strange", to me at least, behaviour from the triac(s) i tried. first of all i post a schematic of my test circuit (bare with it, it's not a complete schematic, it represents only the control part) digidimmer.png

as you can see it's sized for a 220v ac line missing in the schematic is a quadrature encoder input used to control the delay of the firing pulse to the opto. What i did is take the zero cross signal and compute a delay based on the encoder input (ie if the input was 5 out of 10 i'd start a timer on ZCD and once it reaches 5 it would trigger the opto led thus triggering the BTA10 triac) So far so good, the ZCD outputs a nice spike which is read by the pic and the output to the MOC is perfectly timed. Now comes the problems. Just to test the circuit i tried first with 15vAC (sizing the resistors accordingly and using a couple of car tail lights as a load) and i experienced this problem Name: AREA.png Views: 4 Size: 4.2 KB

ok, i don't draw very well...what was happening was that the triac switched nicely in the green region and won't turn on at all in the red one. i was puzzled but i thought it could be a voltage problem so i went from 15v to 110vAC (again changing the resistors and load). Now the triac switched on only at the very beginning of each half wave right after ZC. Sometimes switching only one half of the full wave. As soon as i delay my triggering signal more than a few hundreds uS or so the triac just stops working. I also changed the load to a beefier one (a heater) to increase current but nothing happened. I also tried playing with the resistors a bit to see if i can get some changes but had no luck. Now reading some forums I thought I may get rid of the transformer i used to supply my circuit with 15vAC first and 110vAC after and connect everything directly to the mains as it will eventually be. But maybe someone can point me directly to the correct answer! May the transformer be the culprit? If not what can it be? I don't have much experience with TRIACS so my knowledge is surely lacking something and i may have forgot something important in the description of what I'm doing that can be helpful to get the answer right... Just to be sure i link here the datasheets of the triac, optocoupler and optotriac. And an app note with some of the calculations i've used.





  • \$\begingroup\$ Have you measured the LED current (eg. by looking at the voltage across the 150 ohm resistor)? It looks marginal. \$\endgroup\$ Feb 4, 2014 at 15:51
  • \$\begingroup\$ @Spehro If he's using the opto part he says it'll work at 5mA from the PIC \$\endgroup\$
    – Andy aka
    Feb 4, 2014 at 21:30
  • \$\begingroup\$ Data sheet says 30mA, but I would not be surprised if they all meet the most sensitive spec. Kind of a long shot. \$\endgroup\$ Feb 4, 2014 at 21:34
  • \$\begingroup\$ How long is the pulse that activates the opto triac? \$\endgroup\$
    – Andy aka
    Feb 4, 2014 at 21:40
  • \$\begingroup\$ Is your PIC resetting as soon as it fires? \$\endgroup\$
    – Andy aka
    Feb 4, 2014 at 21:44

2 Answers 2


You could try building an ZCD circuit using Transistor. CE configuration. You need to size your AC input voltage to something reasonable using Voltage Divider.

enter image description here

Choose the voltage divider resistors and keep in mind the power dissipation too. Mostly 1/4W resistors will be sufficient.

Triggering Quadrant of Triac


The idea and the circuit works well, including the zero crossing. But consider the followings:

  • your zero crossing works in one halfcycle only. It is rather a "positive voltage checking" than a zero crossing circuit, so you need to consider that you need to fire the triac e.g. 5ms after L->H and 5 ms after H->L transitions as well. I found adding a simple bridge rectifier can eliminate this hassle.
  • consider changing R3 to 220-470 ohm, you're firing (sorry for the pun) the LED in the optotriac
  • consider making wider trigger pulses. I.e. a trigger pulse is not just a pulse of say, 500uS. Feel free to make it as wide as necessary, usually 1-2ms.

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.