Fork me on GitHub

Project Notes

#205 TriacDimmer

Investigate the operation of triacs and build the basic dimmer circuit.



A triac is a “bidirectional thyristor” because it conducts in both directions and is typically used in AC applications.

For standard triacs, current flow in either direction between the main terminals MT1(A1) and MT2(A2) is triggered by a small signal current applied between MT1(A1) and the gate terminal.

The basic behaviour of a triac can be summarised in two rules:

Rule 1. To turn ON, a gate current ≥ IGT must be applied until the load current is ≥ IL (latching current).

Rule 2. To turn OFF (commutate), the load current must be < IH (holding current) for long enough for the device to return to the blocking state.

Dimmer Circuit

The AC dimmer is a classic application of Triacs. It allows power to be dialed down by effectively chopping out part of each cycle.

Here I’m using a 12V AC supply and a 12V AC lamp and a BTA12-600B Triac.

The gate is controlled by a R-C network. A variable resistor is the dimmer control.

Triacs are often paired with Diacs on the gate to enhance stability. It is not required for a simple dimmer. But here I’ve included two anti-parallel diodes to simulate the function of a diac.


With the dimmer “half on”, the characteristic Triac cut out on both sides of the cycle is pretty clear to see. I was expecting a cleaning signal than this. Is this normal? Not sure, perhas I should solder up the circuit and try again on something more stable than a breadboard.


With the dimmer right down (but light still on - just), the wave eventually breaks down. One half of the cycle drops before the other, as can be seen here:


NB: since I don’t have a differential probe, these scope traces are the X+Y mix of two channels measuring both connections of the lamp with respect to ground.



The Schematic

The Build

Credits and References

Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is just my personal collection of projects. Two main themes have emerged in recent years, sometimes combined:

  • electronics - usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting
  • scale modelling - I caught the bug after deciding to build a Harrier during covid to demonstrate an electronic jet engine simulation. Let the fun begin..
To be honest, I haven't quite figured out if these two interests belong in the same GitHub repo or not. But for now - they are all here!

Projects are often inspired by things found wild on the net, or ideas from the many great electronics and scale modelling podcasts and YouTube channels. Feel free to borrow liberally, and if you spot any issues do let me know (or send a PR!). See the individual projects for credits where due.