Ardiuno and 4–20 mA Current Loop Sensors
The 4-20 mA current loop is a very robust sensor signaling standard. Current loops are ideal for data transmission because of their inherent insensitivity to electrical noise. In a 4-20 mA current loop, all the signaling current flows through all components; the same current flows even if the wire terminations are less than perfect. All the components in the loop drop voltage due to the signaling current flowing through them. The signaling current is not affected by these voltage drops as long as the power supply voltage is greater than the sum of the voltage drops around the loop at the maximum signaling current of 20 mA.
Recently, I came to a project where I needed to interface 4 current loop sensors to an Arduino based board.
To read a sensor I just need to complete the current loop using a resistor and then measure the voltage across that resistor. I wanted to isolate the ground of the sensors’ signals from each other and from the rest of board. So, I decided to use a differential analog-to-digital converter. Having no need for fast conversion and not wanting to sucrify too many pins, I decided to look for I2C IC. Luckily, I found ADS7830 from Texas Instruments. The ADS7830 is a single-supply, low-power, 8-bit data acquisition device that features a serial I2C interface and an 8-channel multiplexer. It could be used with 4 differential or 8 single-ended inputs. The circuit is very simple. The IC has an internal 2.5V reference, so I used 120 ohm resestor for sensing a maximum of 20 mA current.
The code to read the IC is quite simple too, once you figure out how to write the command byte (refer to the datasheet page 13).
cmd=(channel<<4) | 0x0C; //Internel Reference ON, Conversion ON And differencial
Wire.beginTransmission(HART_ADR); // default address 0x48, A0 and A1 set to GND
Wire.write(cmd);
Wire.endTransmission();
Wire.requestFrom(HART_ADR, 1);
sensor= Wire.read();
The 8-bit resolution is quite enough for my application, if you need a better resolution you can use the LTC®2309 8-channel, 12-bit ADC from Linear.










