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

About LEAP#205 TriacThyristor
Project Source on GitHub Return to the LEAP Catalog

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

LEAP is my personal collection of electronics projects, 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 (IMHO!).

The projects are usually inspired by things found wild on the net, or ideas from the sources such as:

Feel free to borrow liberally, and if you spot any issues do let me know. See the individual projects for credits where due. There are even now a few projects contributed by others - send your own over in a pull request if you would also like to add to this collection.