Introduction: Arduino Wattmeter - Voltage, Current and Power Consumption

About: hIOTron is an IoT Based company that offers IoT Platforms, IoT Solutions, IoT Training.

A device can be utilized to measure the power consumed. This circuit can also act as a Voltmeter and Ammeter to measure voltage and current.


Hardware Components

Arduino Uno

LCD 16 X 2

LM 358 Op-Amp

7805 Volage regulator

Potentiometer 10k ohm

0.1 µF

Resistor 10k ohm

Resistor, 20 kohm

Resistor 2.21k ohm

Resistor, 0.22 ohm

Test load

Connecting wires

Software Components:

Arduino IDE

Step 1: Working of Arduino Wattmeter

Building your own meters not only carries down the cost of testing but also provides us room to facilitate the process of testing.


From the sensor part, there are two sections that are reliable for measuring voltage and current. For measuring the voltage, a voltage divider circuit is executed using a 10KΩ and a 2.2KΩ Resistor.

With the help of these resistors, you can easily measure voltages up to 24V. These resistors also support us in taking the voltage range to 0V – 5V, which is the normal range on which Arduino works.

In order to measure the current, we have to change the current values to conventional voltage values. As per Ohm’s Law, the voltage drop across a load is proportional to the current.

Hence, a small shunt resistor is arranged with respect to the load. By estimating the voltage across this resistor, we can calculate the current. We have used LM358 Op-Amp in Non-Inverting Amplifier Mode to magnify the values provided to Arduino.

The voltage divider network for the feedback control includes a20KΩ Resistor and 1KΩ Resistor. These resistors offer a gain of approximately 21.

Learn more about IoT Course which will help you to build a Customized IoT Solutions.

Step 2: Run a Code


int Read_Voltage = A1;

int Read_Current = A0;

const int rs = 2, en = 4, d4 = 9, d5 = 10, d6 = 11, d7 = 12;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

float Voltage = 0.0;

float Current = 0.0;

float Power = 0.0;

void setup()


lcd.begin(16, 2);


lcd.print(" Arduino ");

lcd.setCursor(0, 1);

lcd.print(" Wattmeter ");




void loop()


Voltage = analogRead(Read_Voltage);

Current = analogRead(Read_Current);

Voltage = Voltage * (5.0/1023.0) * 6.46;

Current = Current * (5.0/1023.0) * 0.239;

Serial.println(Voltage); Serial.println(Current);

Power = Voltage * Current;


lcd.setCursor(0, 0);



lcd.print(" ");



lcd.setCursor(0, 1);





Step 3: After Implementation Arduino Wattmeter