EDITED: I bought a very sensitive (and expensive) pressure sensor which requires differential analog measurement. I am an amateur hobbyst and a total beginner in Arduino so I would like to ask some advice on how to connect the device so nothing would be damaged.

In the figure below is the scheme which I've got form the manufacturer along with schematic on how I am going to connect that:

  • the wire colours are as in the provided device,
  • the symbols are as they were attached to the wires,
  • the resistor was provided and connected by the manufacturer.

As far as I understood the sensor manual I should connect the device to analog pins as in the schematic below, and read the A0 and A1 and subtract the signal values. Is that fine? Should I connect the wire going to A1 to Arduino GND as well?

Corrected schematic

Or should I connect the GND instead of A0 line in the image below? Or should I connect the GND instead of A0?

EDIT: Original connection scheme from the DS and link to the CL1A sensor www and link to the sensor datasheet (only in Polish) Yeah, possibly I misunderstood something.

enter image description here

  • 1
    I have a very detailed (and impressive) answer, but I'm not going to tell you what it is.
    – Majenko
    Commented Jun 9, 2017 at 9:39
  • 1
    Supply + goes to "+24V", supply − goes to GND, the white sensor wire is labeled "+S" (S like "signal"), not "+5V". Commented Jun 9, 2017 at 10:00
  • 1
    Please avoid editing your original post by deleting the older parts, otherwise the answers become useless. If you have to add something, edit at the bottom part of the questio (modifying what you have already written can be done only for improving the question, not for correcting it)
    – frarugi87
    Commented Jun 9, 2017 at 10:11
  • 1
    if you have an expensive sensor, it's kind of silly to use such a low res ADC on it, when you can get a full-range 16-bit (64k levels vs 1k) ADS1115 for under $5 that go rail-to-rail, up to 5.5-ish volts
    – dandavis
    Commented Jun 9, 2017 at 12:07
  • 1
    I'd suggest first using a multimeter to measure the signal voltage you get out of the sensor. Less chance of getting things wrong, that with a power Arduino.
    – Gerben
    Commented Jun 9, 2017 at 12:51

3 Answers 3


According to the update, which shows the datasheet, you have one BIG mistake and one smaller mistake.

The big mistake is that you inverted the polarity! Look carefully. The +24V wire goes to the + pin of the supply, while the ground to the - pin.

Moreover the DAQ board has a differential one, but one of them is tied to ground.

So I suggest you to attach the wires in this way:

enter image description here

  • Thanks, that seems reasonable. I will check that on Monday, and if there is no "Smoke Event" I will let you know.
    – Misery
    Commented Jun 9, 2017 at 10:10

You do not need to do any kind of differential measurement here. The Arduino analog input measures voltages relative to ground. Then, as long as the Arduino and the power supply share a common ground, you should be fine.

On the other hand, you may need a voltage divider. I have seen a few sensors interfaced the same way (GND, +24V and signal), which output a voltage between 0 and +10 V. That could fry the Arduin, and maybe also the sensor. Check the datasheet to see the maximum voltage the sensor can output, and use a voltage divider to get that safely into the 0 – +5 V range.


The output of that sensor is an industry standard "4-20mA" (known as a current loop). That means that the current output from the +S wire varies between 4mA and 20mA depending on the pressure. You need to convert that current into a voltage so that the Arduino can sample it.

Note that your attempt at a schematic is completely backwards. You must connect the +24V pin to +24V on a power supply. GND must be connected to GND on the power supply, and also GND on the Arduino.

Now for the signal. Yes, a resistor is the simplest way of converting a current into a voltage. Simply pass the current through the resistor to ground and a voltage will be dropped across it.

According to Ohm's Law, V=IR. Or, to turn it around, R=V/I.

Your maximum current is 20mA (0.02A) and your desired maximum voltage is 5V. So you can put those values into Ohm's Law and get a resistance:

  • R=V/I = 5/0.02 = 250Ω.

Now 250Ω resistors aren't that common, but 220Ω ones are. So what would that give us?

  • V = IR = 0.02 * 220 = 4.4V

Perfect. And at the lower (4mA) end of the range?

  • V = IR = 0.004 * 220 = 0.88V.

So with a 220Ω resistor you would get a voltage reading of between 0.88 and 4.4V on the Arduino.

(Note: the datasheet recommended 100Ω would be more suitable for a 3.3V Arduino - it would give between 0.4V and 2V).

For safety I would also include a small inline current limiting resistor and 5.1V zener diode. If the 220Ω resistor should fail or become disconnected you would get the full 24V (or somewhere about there) across the Arduino's A0 pin. It's limited to 20mA so may not be a problem, but you can't be sure, so best to add that to clamp the voltage to a maximum of 5.1V. After all, a zener diode is cheaper than a new Arduino.

And to clarify - the schematic:


simulate this circuit – Schematic created using CircuitLab

  • Which pressure transducer is it really ? The "CL 1A" can be made as version "R1" with strain gauge output of 10mV or with a processing unit inside for version "3I4" (4-20mA output), "3U1" (1V output), "3U5" (5V output), "3U10" (10V output).
    – Jot
    Commented Jun 10, 2017 at 0:24
  • @Jot Well, the circuit provided can only be for the 3I4 4-20mA version. It makes no sense with any of the others. Plus that will be the most common variant since it's industry standard.
    – Majenko
    Commented Jun 10, 2017 at 0:28
  • We need a photo of the pressure transducer to be sure (assuming the type is written on the pressure transducer).
    – Jot
    Commented Jun 10, 2017 at 2:22

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.