Make an AC Watt meter using Arduino UNO

Published by MKDas on

A watt meter is an useful meter to us. We can measure power of the load with a watt meter. You can buy this expensive meter but did you know that you can make one for yourself? In this article we are going to learn how to make a watt meter using Arduino UNO.

Disclaimer: Electricity is always dangerous. Skill required to work with electricity. Do work with your own risk. Author will not be responsible for any misuse or harmful act. This website contents is also copyright protected. Anything copied and directly posted in your website and claiming it as yours is prohibited and nonsensical. Author published all the articles as opensource to help you making your project and learning purpose only. Learn and make one for yourself. If need any help feel free to ask the author. Author will be helpful to you. Thanks.

What is watt-meter and how it works?

A watt-meter does a complex job, measuring the power flowing through an electrical circuit. It simultaneously measures the voltage and current values and multiplies them to give power in watts.

Basic diagram of Watt-meter mechanism

For AC power, current and voltage may not be in phase, owing to the delaying effects of circuit inductance or capacitance. On an AC circuit the deflection is proportional to the average instantaneous product of voltage and current, thus measuring active power, P=VI cos φ. Here, cosφ represents the power factor which shows that the power transmitted may be less than the apparent power obtained by multiplying the readings of a voltmeter and ammeter in the same circuit.

So to measure power we need to measure the voltage, current and power factor for AC circuit. And for dc circuit, we can measure voltage and current and multiply them to get the power ratings.

How the voltage and current sensing circuit works?

Voltage Sensing:

For AC circuit, we can use step-down transformer to reduce the AC voltage (220V) into lower (say 12V) range. A 220:12 step-down transformer can be used in this purpose. Then we have to use resistors to divide the voltages in more suitable range for Arduino.

A common step-down transformer

Current Sensing:

For current sensing, we need a CT or Current Transformer as the formal name. A CT need to use a shunt resistor according to the CT properties or manufacturer’s suggestion.

Any one can be used after considering the system properties.

How to utilize Arduino libraries for power measurement?

Arduino is an opensource device with lots of libraries to use. Among them, EmonLib is one of the most popular Arduino library for power measurement.

Sensing circuit configuration for EmonLib:

For EmonLib to work properly, we need to hang our sensing circuit from a 2.5V reference voltage as it calculates both positive and negative cycles.

For voltage reference, we can use simple voltage dividers like this:

Circuit Diagram for our Watt-meter:

Here is the circuit diagram for our watt-meter:

Circuit diagram

As you see, we hanged the voltage and current signal at 2.5V reference voltage. And for protection, we used two inverted diode with the CT output. Any kind of CT you can use if you can calibrate in the code.

Testing and simulation:

As there is no physical data is used in proteus, we can’t get actual result in proteus simulation. Although you can get something like this:

Download Proteus file.


Arduino UNO code for this project is:

#include "EmonLib.h"               // Include Emon Library
EnergyMonitor emon1;              // Create an instance
// include the library code:
#include <LiquidCrystal.h>  // initialize the library with the numbers of the interface pins
const int rs = 13, en = 12, d4 = 11, d5 = 10, d6 = 9, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup()
  lcd.begin(16, 2); // set up the LCD’s number of columns and rows:
  emon1.voltage(0, 675.26, 1.7);   // Voltage: input pin, calibration, phase_shift
  emon1.current(1, 3.6);        // Current: input pin, calibration.
  lcd.setCursor(0, 0);
  lcd.print("Watt meter");
  lcd.setCursor(0, 1);
  lcd.print("With Arduino");
void loop()
  emon1.calcVI(20, 2000);         // Calculate all. No.of half wavelengths (crossings), time-out
  emon1.serialprint();            // Print out  variable power factor)
  float powerFactor  = emon1.powerFactor;        //extract Power Factor into Variable
  lcd.setCursor(0, 0);
  lcd.setCursor(3, 0);
  lcd.print(powerFactor * 100);

  lcd.setCursor(9, 0);
  lcd.setCursor(11, 0);

  lcd.setCursor(0, 1);
  lcd.setCursor(2, 1);

  lcd.setCursor(9, 1);
  lcd.setCursor(11, 1);


  lcd.setCursor(0, 0);
  lcd.setCursor(2, 0);

  lcd.setCursor(0, 1);
  lcd.setCursor(2, 1);

Download Arduino file from here.

Download EmonLib library file from here.

PCB diagram:

The PCB design for this project is:

PCB for Watt meter

You can download the PCB files from here.

Practical testing:

This project was made and tested practically. Test result was ok. I didn’t find the image of the test project yet. Once I find it, I’ll share here.


The project was very simple and easy to understand. Using only few parts you can now make a watt meter for yourself.

I hope you enjoyed the project and will make one for yourself. Thanks, Enjoy!


Mithun K. Das; B.Sc. in EEE from KUET. Blog:


Asimi · August 2, 2020 at 2:02 pm

Thank you sir. You have really gave a vital information. God bless you. Pls I would like you to post wattmeter measurements with PIC pls. God bless you and increased you in more knowledge, with more good health, long life and prosperity. You are a really God’s sent tutor with clean explanation, circuits diagram and some with simulation. We will be looking forward to seeing wattmeter measurements with PIC controller.

    Mithun K. Das · August 2, 2020 at 2:14 pm

    Hope to write on this in future. Thank you.

Chayan Mistry · February 24, 2021 at 3:58 am

Nice article dada

Leave a Reply

Your email address will not be published. Required fields are marked *