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
- 1N4007 Diodes – Qty. 4
- Arduino Uno
- Connecting Wires
- Step down transformer 230V to 6V
- Variable resistor 47K Ohm
- Capacitor 1uF 25V
- 5V Zener Diode
Arduino 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.
Pretty! This was an incredibly wonderful article. Many thanks for supplying this information.
Its AC Current that’s why
Is this circuit works lpc2148 microcontroller ? If yes,then how its programed.
Hello, will this circuit read as low as 10mv?
I’m building a precision (half wave) rectifier and will read the output via analogRead().
Have UA741CN opAmps on the way.