I want to measure current using the MAX471 sensor that outputs voltage proportional to the current (1V/A according to the datasheet). To test the module, I connected a 330 ohm resistor to the sensor and powered it from 3.3V arduino. Using ohms law, I was expecting an output voltage of around 10 mV (for ~ 10 mA) in my circuit. However, I am getting an output of around 2.17 volts which seems wrong.

Does anyone see any mistake in my circuit or how I am trying to measure the current?

Here is my circuit:

enter image description here

My Code:

#include <Arduino.h>

void setup()

void loop()
  int adc_val = analogRead(A5);
  float vol = 3.2 / 4095 * adc_val; // using a 12 bit adc

  • Where is your current shunt resistor?
    – timemage
    Commented Feb 21, 2021 at 17:13
  • 1
    @timemage inside the MAX471: "The MAX471 has an internal 35mΩ current-sense resistor and measures battery currents up to ±3A. "
    – dandavis
    Commented Feb 21, 2021 at 17:14
  • @dandavis, interesting. I've not seen that done before with these.
    – timemage
    Commented Feb 21, 2021 at 17:16
  • @dandavis it's actually an ESP32 but I only found arduino uno as the only microcontroller in the schematic software. That's why it says 12 bit ADC
    – Zaffresky
    Commented Feb 21, 2021 at 17:20
  • That's actually a completely different beast, and make sure you compensate for YOUR ESP32's ADC's unique response curves. If you have a SMU you can easily calibrate this, but you can also do it using a reliable current source, a high-precision resistor, and a pair of off-the-shelf DMMs.
    – dandavis
    Commented Feb 21, 2021 at 17:22

2 Answers 2


Do you have the same operating circuit that is shown on page 1 of the datasheet? do you have the 2K resistor they specifically from OUT to ground? Also, it may be worth adding the 1 uF capacitor they recommend from OUT to ground too

The other thing to consider is the actual voltage over the resistor. Check an see if the voltage over the resistor is 3.3 and that there isn't a voltage drop from the chip

If the voltage is fine, there may be a problem with the chip or the arduino


I've got a few MAX471 modules and instead of current readings i get around 90% of input voltage on all of them.

With increasing load the output voltage decreases a bit and the MAX471 chip gets very hot (for example 12V 0mAh = 10V, 12V 200mAh = 9,6V).

I guess we are just "lucky" to get a bad batch or counterfeit chips...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.