Reading multiple proximity sensors simultaneously

Hi All,

I’m looking for advice on a project involving monitoring a large piece of machinery and recording performance data over time.

The data points will come for 52 proximity sensors. Data needs to be logged whenever the machine is in operation and must record the status of each sensor (digital - on or off) simultaneously with readings every 50 milliseconds, but may be more or less frequent after testing.

I’ve spent days researching the use of shift-registers versus multiplexors versus eeproms … or various combinations to where my head is spinning.

I would be hugely grateful for any and all recommendations as to the most practical approach.

Much thanks for any and all advice!

Susan

Hello there,

obviously – Arduino Mega 2560 (54 digital I/O pins, 16 analog inputs).

Otherwise, if you have anything against Mega or you want to impress cool kids you can go with any micro controller and a few CJMCU-2317 (extra 16 I/O pins and 2 interrupt pins each, you can use up to 8 of them in one I2C lane), but it's a bit more complicated...

If both options above aren't complicated enough you can always dive deeper – matrix/multiplexing.

As for data logging – SD card module.

If you're using a smaller Arduino and need to read digital (1/0) data, consider the Microchip MCP23008 I2C I/O expander. You can wire 8 of these (for 64 digital inputs) on a single I2C bus.

When you say "simultaneously" do you really mean "simultaneously"? If so, then you might consider a set of 8-bit latches between the I/O expander and the prox sensors; perhaps something like an SN74LV373APWR octal-latch. The Arduino can use a single pin to clock all 8-latches to provide a simultanous snap-shot that can be read over I2C from the port expanders.

Is electrical noise a potential problem (lots of motors, relays, contactors, high-power cabling or transformers nearby...)?

Thanks so much for the replies guys!

Blackfin: The interference should be minimal but some of the sensors need to be very close to one another. We are intending to use NPN inductive proximity sensors or perhaps some version of a Hall Effect sensor. I've seen some examples of using shift registers to handle quite a few digital inputs. Would the SN74LV373APWR offer superior performance (faster, lower power consumption)?

3Dgeo: Nothing against a different micro controller at all. If the Mega has 54 inputs that would do it ... unless of course we end up having to monitor a few more positions of the machine which I don't anticipate. If it became necessary would you advise CJMCU-2317 over other options?

Thanks again so much for the feedback!