AC Voltage Measurement using Arduino

AC voltage measurement can be carried out by converting AC voltage into proportional DC Voltage using rectifier and filter circuits. For low AC voltage (mili volts) measurement precision rectifier is used as diode knee voltage is 0.7 Volt. Similar to DC voltage measurement Voltage divider is constructed using 47K Ohm variable resistor R1. 5V zener diode is used to protect Arduino from accidental excess voltages. Adjust the resistor R1 (47K) to calibrate the voltage. Here the AC voltage that we can give to transformer is from 50V to 230V depending on its ratings. Rectified DC is fed to the voltage divider circuit.

Components Used for AC Voltage Measurement

  1. 1N4007 Diodes – Qty. 4
  2. Arduino Uno
  3. Connecting Wires
  4. Step down transformer 230V to 6V
  5. Variable resistor 47K Ohm
  6. Capacitor 1uF 25V
  7. 5V Zener Diode

Arduino AC Voltage Measurement Circuit

AC Voltage Measurement Circuit
AC Voltage Measurement Circuit

Connect Arduino as per circuit shown in figure 2.5, make ground common for Arduino and circuit shown in figure. Adjust the resistor R1 to get proper reading. When AC Voltage is 250V we get 5V output.

So calibration formula is

AC Voltage = (250/1024) * ADC_Value

In case if the voltage reading is fluctuating then increase the value of C1 from 1uF to 10uF.

Arduino Code for AC Voltage Measurement

/*  Read AC Voltage 50 to 250 Volts - www.circuits4you.com
    Reads an analog input on pin 0, converts it to voltage, and prints the  
    result to the serial monitor.
    Graphical representation is available using serial plotter   (Tools > 
    Serial Plotter menu)
*/
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 250V):
  float voltage = sensorValue * (250.0 / 1024.0);
  // print out the value you read:
  Serial.print("AC Voltage: ");
  Serial.print(voltage);
  Serial.println(" Volts");
  delay(1000);
}

Results of AC Voltage Measurement

Open the Serial Monitor from (Tools>>Serial Monitor), Set Baud rate to 9600, See the AC voltage reading in serial monitor.

AC Voltage Measurement Result
AC Voltage Measurement Result

5 thoughts on “AC Voltage Measurement using Arduino

Leave a Reply