Arduino Based AC Voltage Control using Zero Voltage Crossing Detection

Introduction

Usually, in our homes, ac appliances run on single-phase AC voltage. And in India usually, a house is supplied with single-phase AC voltage with a voltage range of about 220-240 volts at 50Hz. AC voltage in its first half cycle starts increasing the voltage from 0 to 220-240 as its peak voltage and when it reaches the peak voltage it starts decreasing from 220-240 to 0. Now in the next half cycle, the voltage starts increasing but in the negative direction and ultimately reaches its peak (say -220v-240v) and again it will start decreasing and continue to reach zero voltage.

If we draw a graph of this voltage nature with respect to time. We will find it as a sine wave. So, usually, in our houses, the supplied voltage is a sine wave with a 220-240v peak and a frequency of 50Hz.

Details about AC Voltage Control

Now controlling AC voltage means we are trying to control the speed of a single-phase ac motor or trying to control the brightness of an incandescent bulb or any other task which needs to control the AC voltage. So, to control the voltage we can not chop off the required voltage. First, we need to know the zero point of the voltage which means to detect the AC voltage when it reaches the zero point. And when we get the zero point at that time we can chop the voltage as required. To detect zero voltage crossing we will need a zero voltage crossing detector.

Zero Crossing Detector

This is the main circuit of the project and needs to design it very carefully.

Explanation

Here we have a 12-0 transformer which step-down the 220 AC voltage to 12v. This 12v AC is fed to the full bridge rectifier circuit. As shown in the figure. And pin number 5 of the optocoupler(4N25) is connected to pin D2 of the Arduino UNO board. Arduino UNO has two interrupt pins. Pin D2 and D3 are the two interrupt pins. Here we are using pin D2.

OPTOCOUPLER or OPTO ISOLATER(4N25)

It is made up of a LED and a phototransistor. Its internal construction is shown in the figure. So whenever AC is at the proper voltage the output at pin number 5 is LOW. And when it crosses through the ZERO point, LED in the IC goes OFF and a HIGH pulse is generated at pin 5. And this HIGH pulse is used to trigger the interrupt(INT0) pin and the circuit is activated.

OPTOCOUPLER or OPTO ISOLATOR(EL3021)

The diagram shows the internal circuit and external view in the figure.
Pin 1 and 2 are the anode and cathode of LED respectively. That means the voltage at pin 1 will decide the brightness of the LED and so the voltage across the thyristor. Pins 4 and 6 are used to trigger the gate of TRIAC(BT136).

Voltage controlling circuit using a TRIAC

TRIAC(BT136) – TRIAC is a bidirectional triode thyristor/ bilateral triode thyristor. It is a three-terminal electronic component that conducts current in either direction when triggered from the gate terminal. 

Hardware Required

Disclaimer: It may contains Amazon affiliate links. which means I can get a small commission on the sale. This might be your indirect help to me. Thank You 🙏
  • Arduino UNO (HERE)
  • Alpha numeric 16×2 LCD (HERE)
  • MOC3021
  • 1N4007 diode
  • 4N25
  • ON-OFF Switch
  • Voltage regulator -7805
  • BT136
  • Wire to carry 2A,230v AC
  • 12-0, 1amp Transformer
  • Two-pin plug.
  • Bulb holder
  • PBT-2 terminal block
  • 6-pin IC base-2pcs
  • Resistors-10k, 3k3, 330, and 120 ohm
  • Bread Board for connection (HERE)

Software Requirements

  • Arduino IDE (Download Link HERE)

Block Diagram

Circuit Diagram

Circuit Explanation

According to the above circuit diagram, the major components of the circuit are:

  • Arduino Board
  • Power Supply
  • Variable Resistor
  • ON-OFF Switch

Arduino Board: It is the programmable unit that will be controlling the entire functionality of the circuit and every module will be interfaced with it.

Power Supply: Arduino UNO required 5v DC voltage and it is provided by the USB cable itself. If you want to make it as a standalone you can use an external power supply which is designed with a voltage regulator 7805.

Variable Resistor: A 10K ohm variable resistor is used to change the firing angle. One end of the resistor is connected to GND and the other to VCC and the third/middle/output pin is connected to the A0 pin of Arduino UNO.

Toggle Switch: Here you can use a toggle pin to start and stop. This switch is connected to pin number 7 of Arduino UNO. I am connecting this pin directly to GRND.

Video Tutorial

Download Source Code

Download the complete source code: click here

1 thought on “Arduino Based AC Voltage Control using Zero Voltage Crossing Detection”

Leave a Comment