Dimmers provide a way to reduce the power of resistive elements like heaters and light features by changing the waveform of the voltage applied to them. There are different approaches to the development/implementation of dimmers and there are a lot of how-to guides and projects based on them, but the general efficiency of these solutions is usually low due to several reasons. For typical MCU based dimmers, the approach is either; a zero-cross detection circuit to trigger an interrupt on the MCU, or the MCU pulses a Triac with a delay that corresponds to desired power delivery.
The delay approach is quite popular but inefficient as it, in most cases, lacks linearity due to the sinusoidal nature of the waveform of an AC source and leads to the same level of dim, generating different results. To ensure this is not the case for a project they were working on, Tirdad Nejad, and Amir Kazemi, developed an isolated dimmer with linearly corrected output.
Rather than an arbitrary generation of delay time Tirdad and Amir’s project generates delay timings in a way that the partial integration of the sinewave remains the same between dimming steps, thus ensuring linearity.
Some of the components used in the development of the tiny dimmer include; A Microchip – ATtiny13, Triac thyristor, Potentiometer, PC817 optocoupler, an LM1117 based power supply system, and several other passive components.
The project is completely open-source, and all files including schematics, complete BOM, and source code are available on the project’s page on Hackster. More information on the design approach and the logic behind the project is also available there.