I have a 4-20mA Receiver click module hooked up to a 5V Arduino. The goal is to have this system be able to measure 4-20mA current.

I'm using a simple resistor - LED circuit for testing, as well as a 4-20mA tester.


simulate this circuit – Schematic created using CircuitLab

  • The only time I'm able to measure current is if the circuit is externally powered using a 5V powerbank. I simply hookup the click module in series, and the Arduino can measure the current. However, I notice that without the click module the current is 1.3mA, and with the click module also in the circuit it is about 3.8mA. (or 8mA vs 21mA if I use a different resistor).
  • I thought about powering the circuit from the Arduino instead of using an external supply, but the receiver gets really hot, and nothing can be measured. (I'm again putting the click module in series, just like I did with the external battery.
  • If I use my 4-20mA tester, externally powered at 12V, the receiver also gets really hot, and nothing can be measured

I'm having trouble understanding why these scenarios aren't working.

I'm also having trouble understanding how the 16V output from the TPS61401 step-up converter in this click module plays a role in these scenarios.

This 16V is responsible for "powering the loop", but in all 3 scenarios, isn't the loop already powered by the provided 5v / 12v ?


enter image description here

*Figure 1. Extract from 4-20mA R click.


simulate this circuit – Schematic created using CircuitLab

Figure 2. Redrawn schematic showing current flow from top to bottom.

As shown more clearly (I hope) in Figure 2, the R-click internal 16 V supply powers your 4-20 mA sensor. You should not connect an external supply to the current loop between the terminals on CN1.

How it works:

  • The sensor draws current in the range of 4 - 20 mA from the CN1 + terminal and returns it to the power supply via the GND terminal.
  • R3 will create a voltage drop between the INA196 VIN+ and VIN- terminals. From Ohm's Law we can calculate this as being between 20 mV at 4 mA and 100 mV at 20 mA.
  • The INA196 is one of the range of INA19x Current Shunt Monitors. One of the features of this chip is that it can monitor current on the "high side" of the supply rather than on the ground return which, without this chip, is generally simpler.

To test the circuit:

  • Measure the open-circuit voltage across CN1. It should be about 16 V.
  • If we connect \$ R = \frac {16 \ \mathrm {V}}{4 \ \mathrm {mA}} = 4 \ k \mathrm {\Omega} \$ the Arduino should report the correct minimum value.
  • If we connect \$ R = \frac {16 \ \mathrm {V}}{20 \ \mathrm {mA}} = 800 \mathrm {\Omega} \$ the Arduino should report the correct maximum value.

To understand how the INA196 works have a look at my answer to Why does current flow into the transistor in a current shunt monitor?.

  • \$\begingroup\$ Thx for the explanation .. will try it tonight when I'm at my desk. By measuring open circuit voltage across CN1 you mean when nothing connected, just measure the voltage over the 2 CN1 pins ? \$\endgroup\$ – ddewaele Oct 3 '17 at 5:24
  • \$\begingroup\$ Correct. Then replace "16 V" in the calculations with the measured value to calculate the test resistor values. Note that the 16 V source may not be that "strong" and the voltage may droop while on load. You could check this at point (2) during the load tests. \$\endgroup\$ – Transistor Oct 3 '17 at 6:14
  • \$\begingroup\$ I only measure 4.85V across the 2 pins when nothing connected (simply powering the click module using the arduino). \$\endgroup\$ – ddewaele Oct 3 '17 at 7:18
  • \$\begingroup\$ That sounds as though the 16 V booster isn't working. You may have damaged it by attaching a battery to the sensor input. You'll need to debug the circuitry around the booster power supply. \$\endgroup\$ – Transistor Oct 3 '17 at 14:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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