Introduction: Arduino Mesure Accurate A.C Voltage Without Using Transformer.

About: I like to make things in free time

In this instructables i ll show you how to mesure accurate Home A.C voltage without using transformer with arduino

Step 1: Parts List & Soldering

2 - 220k ohm resistor 1 or 2 watt

4 - 1N4007 diodes

1 - capacitor 24v 47uF

1 - Zener diode 5.1v

1 - 6.8k resistor

1 - perfboard

1 - Arduino UNO / Arduino NANO

  • Multimeter
  • Soldering Iron

Now Solder Parts according to the schematic.

I have use 3 resistor in parallel & series because i don't have 6.8k ohm resistor at the moment.

Warning !

A.C high voltage can kill you, if you are not careful what you are doing.

circuit info

220k ohm resistor used for dropping voltage then connects to diodes that rectify the AC voltage to DC, Capacitor used for smoothing the DC voltage then used 5.1v zener diode in parallel to the capacitor to prevent from over voltage spikes that protects arduino from getting fried, 6.8k ohm resistor used in parallel with zener and capacitor for minimal load and discharge the capacitor, its also important to use this resistor.

Step 2: Connecting to Arduino & Coding

Connection & Wiring

Connect red wire to A0 pin of arduino and Black to GND

code starting here

int voltagesens = A0; //input pin no
int analogread;
int ac_voltage;
float calibrate = 0.4096465028355388; // calibrate value
void setup()
  Serial.begin(9600);// begin serial communication between arduino and pc
  pinMode(voltagesens, INPUT); // set pin as input pin

void loop()

  //start- Voltage sensing code//
  analogread = analogRead(voltagesens); // read analog values from pin A0
  ac_voltage = (analogread * calibrate);
  //end- Voltage sensing code//


  //start- Serial printing code//
  Serial.print(" Analog Value " ); Serial.print(analogread);
  Serial.print(" - A.C Voltage "); Serial.print(ac_voltage);
  //end- Serial printing code//


code end here

How to calibration & adjusting value

How to Calibrate / how to get this(0.4096465028355388) calibrate value

To get calibrate value you need multimeter,

Check the ac voltage using multimeter and then check the value of analog pin in arduino.

If the ac voltage is 220 and the analog value is 655 then 220 / 655 = 0.3358778625954198 - you get the calibration value.

how calculating works with ADC in arduino

Arduino receive voltage form the circuit then convert it to ADC value

then the value get multiply by the calibrate value and shows the real ac voltage.

example -> ac_voltage = (analogread * calibrate);

I hope You Will Like this instructables