Which sensor output is best?

Hello all,

I need to buy a sensor and I have the chose between output signals. Excluding cost, what is the best to interface with an Arduino Due (is there a difference with an Arduino uno)? An analog/digital resolution of 10 bit is sufficient for my purposes but more is always welcome off course. I don't mind buying additional components and soldering a bit.

I have the choice between:

  • Potentiometer 1 k?
  • Voltage 0 ... 10 V (18V excitation required)
  • Current 4 ... 20 mA, 2 or 3 wire (12-27V excitation)
  • Voltage or current output, programmable (PMUV/PMUI)
  • A/D converted synchronous serial interface (SSI) (11-27 V excitation; 16bit resolution)
  • A/D converted CANopen bus (8-36V excitation)
  • pulse output (5V DC excitation rotary encoder 300 kHz max)

I have some bad experiences with the pulse output and the arduino mega (for some reason it didn't catch all the pulses). And besides, when I lose power, I lose the 0 point so this is not really an option.

I would have loved to get the SSI interface. Simple and easy... BUT it needs 11-27V excitation.. is there an option to convert this to Arduino like voltage levels?

Currently my favorite is going for the potentiometer and using this library: RTD / PT100 1000 measurement: Library for MCP 3551 22bit ADC. - Sensors - Arduino Forum I also got it to work with a PT100 so I guess the potentiometer is just a step further?

Can anyone give me some guidelines? Or maybe point me to some interesting articles? Thanks!

You left out I2C and SPI which are synchronous serial, and usually 5 or 3.3 volt excitation. What do you want to sense?

I'd like to sense this thing:

http://www.asm-sensor.com/asm/pdf/pro/ws10zg_en.pdf

:slight_smile:

Thanks for your comment, the sensor has SPI/I2C (SSI?) but it's not on 5V/3.3V, it's on 11-27V unfortunately.

Thanks for your 'input' :wink:

If you need to stay with 5 v excitation, the only one is encoder output. There are many libraries for encoders that may help.

groundfungus:
If you need to stay with 5 v excitation, the only one is encoder output. There are many libraries for encoders that may help.

What do you mean, why won't i be able to use the potentio/voltage or amp output?

Sorry, I missed the potentiometer (I just saw 32 v). It would seem to be the simplest by far. One end to 5v, the other to ground and the wiper to an analog input.

I just had a conversation with someone much more experienced with microchips and electronics then me and he advised me to go for the SSI interface. I probably need about 5-10m cable between the sensor and the Arduino in an area subject to quite a lot of interference. He said that analog signals tend to perform poorly and that it is best to convert to digital ASAP. A simple voltage divider would solve the issue of different logic levels. He did advise me to add a diode to protect the Arduino from overvoltage.

Thanks for your help!

Given the distance and noise environment I would agree with your friend. I used the voltage divider method to level shift 5 volt signals to 3.3 volts for an SD card and it words well.

groundfungus:
Given the distance and noise environment I would agree with your friend. I used the voltage divider method to level shift 5 volt signals to 3.3 volts for an SD card and it words well.

Can I use a high speed optocoupler to achieve the same result?