Introduction: DC Wattmeter Using Arduino Nano (0-16V/0-20A)

Hello friends!!

I am here to show you a DC wattmeter which can be made easily by using Arduino nano. One of the main problems I was facing as an electronics hobbyist is to know the amount of current and voltage applied across the charging circuits I made. I thought of buying one meter from an online store, but one of my friends told me that it is having a huge error while measuring the current.

So I thought of making it using can also be used to charge batteries with auto cut off by making some modifications.


  1. Arduino Nano
  2. ACS712 Current sensor 20A module
  3. 16x2 LCD
  4. I2C module for 16x2 character LCD
  5. Resistors-220k,100k/0.4W-1Nos
  6. 9V Power supply
  7. Female headers, Terminal blocks
  8. Line board or dot board
  9. Connecting wires

Step 1: Schematic

Voltage Measurement

For measuring the voltage I have used the simple voltage divider circuit. By using two resistors of value 220K and 100K, a maximum voltage of 16V can be measured. Nano can only read up to 5V through the analog pin A1. If you want to measure different voltage levels then change the resistor values accordingly.

Current measurement

For measuring current I have used the current sensor module ACS712(Click here for datasheet).it is available in three models for different current measurements i.e. 5A,20A, and 30A. I used the 20A module. It can measure both AC and DC current but here it is intended to measure DC current only.

There are other sensors like MAX471 and INA219 which use shunt resistors and current amplifiers to measure the current. The ACS712 Module uses the famous ACS712 IC to measure current using the Hall Effect principle. In the schematic, I have shown the circuit of the module you can use the sensor module directly. It is powered from the 5V supply from the Arduino nano. The output of the module is connected to the analog pin A2.

LCD and I2C module

To display the voltage and current I have used a 16x2 LCD. It is connected to nano through the I2C protocol. With the help of the I2C module, we can easily connect the LCD to the nano. You can also connect the LCD without the I2C module. In that case, we have to provide 16 connections to the LCD. Analog pin A4 and A5 pins of nano supports I2C protocol hence the module is connected to these analog pins. Also, it is powered from the 5V supply from the nano. The LED+ and LED- is also connected to the LCD, there are actually two more pins in the LCD for turning the backlight ON.

Finally, the power to the nano is provided from a 9V supply. Here I have used a traditional 9V transformer and a bridge circuit regulated using the 7809, voltage regulator. Always use a voltage between 7V to 12V because in this range it will function accurately.

Step 2: Code

The coding part is simple, two analog pins A1 and A2 are used to read the voltage and current respectively. These values are processed and converted to its actual value and it is displayed in the LCD.

After making the wattmeter you need to calibrate the readings to get the value shown in a standard multimeter. For that, we need to add or subtract a constant value from the measured value.

Step 3: Final Product

I have used a line board for placing and soldering the components. Arduino and the current sensor are placed on female headers so that it can be easily removed or reprogrammed in case of any malfunctioning.

I have put all the parts inside a plastic container so that it can be used as a standalone unit. It has got an inbuilt power supply of 9V to power the wattmeter. So that it can be used with any power supplies rated from 0-16V/0-20A.

Hope you like this wattmeter.This will definitely help all budding electronics enthusiasts.

Thank you!!