Arduino MAX471 Power Meter Tutorial

Using the MAX471 B43 Module as a Power Meter

MAX471 Arduino Power Meter Tutorial LogoThe MAX471 measures both current and voltage, thus making it ideal for a quick power measurement.

It is powered by the source to be measured.   The maximum measurable current is three amps and the voltage measurement range is from 3 volts to 25 volts.    This tutorial shows you how to make both these measurements and combine them into a power measurement.

 

Getting One

There are two flavors of this module available.  The first module is configured for a current only measurement. It can be seen HERE.

This module is set up for both current and voltage.  They can be found from the vendors listed below.

eBay

MAX471 Pin Outs

 

Max 471 Volt Current Power Pinouts

GND:   All of the grounds are connected to the same electrical point

VOUT:  Connects the high side of your load

VIN:  Connects to the Positive Pole of your voltage source  ( This can be anywhere from 3 to 25 Vdc )

AT:  Provides 0 to 5V signal that is scaled to 1 V per amp.

VT:  Provides a 0 to 5V signal that is scaled to 1 volt per for every 5 volts input

Arduino MAX471 Watt-meter Tutorial

Connect Your Arduino to the MAX471, a Load and a Power Source

I’m using an 18650 battery,  while the nominal voltage is 3.6 volts it can be as high as 4.0 volts when fully charged.  I use that value to determine the load resistance for my test.

I find that if I put a 32 ohm resistor across the battery, I will draw about 0.124 amps and dissipated 0.5 watts through the resistor.

Since I had 1/2 Watt 68 0hm resistors,  I put two in parallel to yield a nominal 34 ohms with the ability to safely dissipate 1 Watt of heat.  So,  I am above the 3V supply requirement, below the 3A current ceiling and have chosen a safe enough load for test purposes.

Arduino Max 471 Power Meter Tutorial Hook Up

 

Copy, Paste and Upload the Power Meter Tutorial Sketch

Simple stuff.  We read voltage, current and multiply them to get power.   Remember, with voltage we’re going to multiply whatever value we read by five to yield the value measured by the MAX471.

// Henry's Bench
// MAX471 Power Meter Tutorial

#define VT_PIN A0 
#define AT_PIN A1

void setup()
{
  Serial.begin(9600);
  
}

void loop()
{
  int vt_read = analogRead(VT_PIN);
  int at_read = analogRead(AT_PIN);

  float voltage = vt_read * (5.0 / 1024.0) * 5.0;
  float current = at_read * (5.0 / 1024.0);
  float watts = voltage * current;
  
  Serial.print("Volts: "); 
  Serial.print(voltage, 3);
  Serial.print("\tAmps: ");
  Serial.print(current,3);
  Serial.print("\tWatts: ");
  Serial.println(watts,3);
  Serial.println();
  
  delay(500);
  
}

Verify Your Sketch Output

Open your serial monitor.   If everything worked out,  you receive will have an output that looks something like the picture below:

MAX471 Arduino Power Meter Tutorial Output