Interface three 0-20 mA signals

Hello,

Im working on a small project were I connected 3 mA outputs to transfer values to an Arduino Uno and then to a small LCD 4x20. I got it working today by running the three signals through their own 250ohm resistor.

Now I want to solder it all up on a prototype board and I have been reading a bit on the forums about making the circuit more robust. I have attached a circuit is this enough or am i way off ?

I only got a 4 leader shielded cable and i'm wondering if its ok to run the common back to the mA outputs together on the same wire and then bridge them together there?

its ok to run the common back to the mA outputs together on the same wire and then bridge them together there?

Yes.

I have attached a circuit is this enough or am i way off ?

The arrows on the Arduino and PLC are the wrong way round, but this is minor. The problem is with those zener diodes. They start to conduct way before the zener knee and they will distort the upper range of readings.

Thanks for reply!

Oops.. bought 50 of those >< ..

So to learn something from my mistake.. in the attached datasheet. The zener knee is the 4.85V listed under "Zener voltage Min" ?

If so, any reading above 19.4 mA is lost or not to scale?

This would be ok in this project as the higest mA signal I need to read will be 18mA.

The zener knee is the 4.85V listed under "Zener voltage Min" ?

If so, any reading above 19.4 mA is lost or not to scale? This would be ok in this project as the higest mA signal I need to read will be 18mA.

No, because the knee is not the point when the zener starts to kick in. It is the point where it kicks in hard. Below the knee it still conducts enough to distort an analogue measurement. Try it and see. Apply a voltage in steps through a resistor and measure the voltage across the zener to see the effect. The other problem is that this curve will change with temperature.

A zener diode is useless.
It won't protect the pin if the Arduino happens to be off.
It will also introduce errors in the 15-20mA region.

Better to use 51ohm current sense resistors.
And 10k resistors between them and the Arduino pin.
And enable 1.1volt Aref in void setup().
That will protect to 100mA and beyond.
And also will make your measurements independent of supply variations.
Leo..

outsider:

  • a 2.7k resistor in parallel with 51 will give 50.054 Ohms and 20mA through that = 1.001 Volts.

And what is the use of that.
Measuring the voltage with a DMM?

The absolute resistance doesn't matter if you measure with Arduino's A/D.
Because the returned value from the A/D depends on two things:

  1. the voltage from that resistor.
  2. Aref of the board you're using.
    Since Aref isn't 1.000volt, it's useless trying to make 20mA 1.000volt.
    The maths line in the code will take care of both offsets.

51ohm (standard 1% E24 value) is choosen so 20mA is very close to Aref, so max range of the A/D is used (~800 values).
Leo..