I have to build an analog proportional controller for a 127 V, 1 kW AC heating resistance. The power delivered to the heating element must be proportional to the difference between a set point temperature (40°C) and temperature measured with an LM35 sensor, conditioned to work between 0 and 5 VDC.

I tried to control the power delivered to the load by varying the firing angle of a TRIAC. However, I have searched online and on power electronics textbooks for ways to control the firing angle, but all the circuits I have found involve either potentiometers (such as dimmer circuits) that make then useless for automatic control, or special triggering circuits of which they provide no information whatsoever.

  • Is there a way to control the firing angle of a TRIAC using a DC voltage without resorting to manual control using potentiometers?
  • Or is there some other way of controlling the power delivered to an AC load using a DC voltage? Reference books or circuit diagrams would be greatly appreciated.

Also, any information regarding already existing trigger circuits for triacs (such as integrated circuits for triac firing) would be a lot of help.

NOTE: I am not allowed to use an Arduino for this circuit.

  • 1
    \$\begingroup\$ If you want to use phase-angle control you will need to detect zero-cross. If the thermal time-constant of your load is of the order of several seconds then you can use time proportional control. Have a look at my Opto-triacs, solid-state relays (SSR), zero-cross and how they work and see which solution you want. The variable duty-cycle version is much simpler to implement. Note 'k' for kilo and 'K' for kelvin. Marcus fixed it for you. \$\endgroup\$
    – Transistor
    Jun 8, 2019 at 18:56
  • \$\begingroup\$ As Transistor said, for heaters, don't use phase angle, use duty cycle. \$\endgroup\$
    – Neil_UK
    Jun 8, 2019 at 19:09
  • \$\begingroup\$ If you are open to purchasing, there are lots of companies that make industrial power controllers. This product can do phase angle or duty cycle (they call it burst fire control). It has a voltage input, you will need to design the feedback loop. crydom.com/en/products/catalog/… \$\endgroup\$
    – Mattman944
    Jun 8, 2019 at 19:26

3 Answers 3


Your best solution may be to use an opto-isolated Triac driver to drive the power Triac and achieve ON off control with galvanic isolation and low EMI from the built in zero-crossing switch (ZCS).

Since the slew rate of temperature is slow, no DC controlled pulse is required. It will cycle on and off and regulate to whatever set point you choose with an LDO derived Vref with a comparator and filter cap. The opto-triac is just needs 5 to 10mA active low from the comparator with a current limiting R for the ~ 2.1V IR diode with Anode to LDO. You can use 3.3 to 5V for the LDO.

Hysteresis or temperature error depends on the stability of Vref and external AC noise level of temp sensor voltage to ADC as excessive noise may cause it to cycle on and off quickly from a sensitivity of 10mV/degC. Noise reduction methods include, RC filter from twisted pair or coax as shown in data sheet. Series R and 50pF max or larger R and bigger C.

Temp errors will only occur if the noise is pulse like and not symmetrical. If symmetrical AC hum exists on the temp signal, the Triacs will just cycle on and off at equilibrium like a cycle based PWM.

Other small sources of error may be from lack of thermal insulation outside sensor and poor conductance to the medium from the outside wall and/or the thermal insulation of the container with minimum thermal difference from heater end to opposite end.


You may choose Opto-triac, Triac with thermal resistance and temp rise at rated current, LDO, pot, comparator, RC filters, cables, connectors, and have an indicator which could be a 2V Red LED in series with IR LED which affects series R (voltage drop I=V/R) to get the same 10mA max current. Have fun.


Basically, stripped of all the nasty details, you want for your homework project a voltage-controlled delay. The delay should be very small for (say) 0V in and just under 1/2 cycle of the mains for maximum input (say) 5V. That means your proportional controller would output 2.5V (say) for temperature = setpoint, and proportionally more voltage as the measured temperature increases (to reduce power to the load).

You can do this by creating a ramp with a constant current source and a capacitor, resetting it at the zero crossing (using a zero crossing detector feeding a BJT or MOSFET. The constant current source can just be a resistor to something like +12V.

You then need a comparator to detect when the ramp exceeds the control input and drive the triac gate.

In a real application you would need to provide galvanic isolation, probably by using an isolated zero crossing detector (maybe an opto-isolator) and an isolated triac driver (an opto-triac or similar device).


Here are high-level block diagrams for the two methods. I agree with Transistor, a Duty Cycle is usually best for a heater. No need to generate (and therefore control) EMI emissions for no reason.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ Could you please provide more details on what the gate driver block consists of? \$\endgroup\$ Jun 8, 2019 at 20:11
  • \$\begingroup\$ For a Zero Cross Detector and Gate Driver, see "Transistor"s link in the comments (figure 5). For phase control, omit the transistors and use an Opto-SCR. \$\endgroup\$
    – Mattman944
    Jun 8, 2019 at 21:42

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.