# How to read lots of inputs

Hi,
Im working on a project that could potentially do 2 of the following. I am a mechanical Engineer and I dont know much about electrical engineering, bu talking to a friend of mine who is still studying EE, he gave me his input which I felt was not the best option, I hope you guys can help me clear my mind a little on what is the best solution:

What I need is an IC that can read many inputs or somehow, sort through options and only use the ones connected.

Option A:
Cycle through 96 inputs, this option would basically read 96 resistances from each sensor position in sequence and output all the data through a single channel 96 times. It will be more time consuming and would not allow for real-time monitoring, however it would allow for all 96 sensors to be used at the same time.

Option B:
Real-time limited monitoring: This option would allow to monitor 18 channels (I am limited to mulitples of 9), in this case the IC would go through all 96 channels, locate only those that have a sensor connected to them (if its not an open circuit, then there is a sensor in there), number them in a logical way (so that always the top row leftmost is no.1 and bottom row rightmost is no. 18) and output real-time data in 18 parallel channels.

My question for both options or either option (whichever you think is more convenient) is:
- How would I go about selecting an IC for this? what chip should I use? Arduino? or some other one?
but my main concern is, AFAIK arduinos dont have 96 input channels and 18 output channels, so how would I go about reading all 96 ? As mentioned my friend told me that you would need things that group X amount of positions into clusters, and then once you reduce 96 to say, 8 clusters of 12 then you can use a regular IC with 8 inputs and 1 output or 8 inputs and 18 outputs. (something more reasonable).

I dont know if this is the best option, I was thinking about TV's, their processors control each pixel individually, and I dont think they have an IC with 2084400 inputs and outputs, and I doubt they have clusters, because that number is way too big to be reducing it in a pyramid, plus I believe that would add noise to the signals if you keep clustering them.

So, once again, if TL:DR:

- How to read 96 channels using the least amount of IC components? and with the least amount of noise.

What hardware should I use? How should I set this up in my PCB?

Last edited by a moderator:

donpacino
Gold Member
So you are tasked with completing either option A or option B. Real time will be more complicated.

What type of sensors will this interface with?
How fast are the sensors required to be read?
What will the data be used for.

These are all important questions that NEED to be answered when you leave your problem statement that open ended.
If you narrow it down (aka "I need to read 96 sensors that each have to be read at least once per second and the data has to go into memory") then we can advise on hardware.

edit: very important also is digital or analog sensors

Ok, thank you for the reply.

The sensors are a set of values:

Each sensor has a 5 pin-interface (Only 4 pins used):
Pin 1 and 2 go to a temperature-dependant resistor (so an analog device)
Pin 3,4 go to an EEPROM, that stores the calibration values of the resistor in place (it contains the values of temperature associated with the values of resistance)
So, I dont know if thats considered digital or analog, maybe both?

About the options, the faster we can read all the better, or if real time monitoring is possible, I believe that might work as well, but you say its difficult. so lets go with option A

berkeman
Mentor
Each sensor has a 5 pin-interface (Only 4 pins used):
Pin 1 and 2 go to a temperature-dependant resistor (so an analog device)
Pin 3,4 go to an EEPROM, that stores the calibration values of the resistor in place (it contains the values of temperature associated with the values of resistance)

How is the EEPROM powered? Is power available at each sensor? How far apart are the sensors placed? How long are the wires to the sensors? How (electrically) noisy is the environment? I'm assuming that the EEPROMs are programmed at some calibration time for each sensor?

analogdesign
What format do you need the data in? If analog readout of the sensors is good enough?

The easiest way to go for sure will be to use a reference resistor and then switch the temperate dependent resistors in series with them one at a time, recording the voltage you get (configure them as a voltage divider).

You might be able to use this part for example: http://www.maximintegrated.com/en/products/analog/analog-switches-multiplexers/DG406.html

You would need 7 of them to read out 96 sensors (96/16 + 1). Then an Arduino would be easy to use to digitze this if you need to.

How is the EEPROM powered? Is power available at each sensor? How far apart are the sensors placed? How long are the wires to the sensors? How (electrically) noisy is the environment? I'm assuming that the EEPROMs are programmed at some calibration time for each sensor?

Well, the EEPRROM has a single in/out wire, a Vcc and a GND. I am still researching to see if I can share ground with the resistor, if thats the case I will only use 4 pins:

1- GND
2- Resistor
3- Vcc
4- Data In/out

if its not possible I will use all 5 pins:
1 - GND
2 - Resistor 1
3 - Resistor 2
4 - Vcc
5 - Data In/out.

This circuit will be in a PCB, except for the temperature dependant resistors, they will have lead wires of about an inch

About the format of the data, I think analog would be fine. This whole assembly will later be connected to a computer which will log the data and convert resistances to temperatures. However it does need to read the calibration data off each resistor (I assume the data on th EEPROMs is digital, so I dont know if this is some sort of mixed signal or if it can be just boiled down to pure analog).

About the mulitplexers, this was what my friend was talkign about (the clusters things). I just forgot the name on my opening post. I do wonder tho, do TV's have hundreds of mulitplexers? or how does a TV controll all millions of pixels independently?
But yes, mulitplexers are my plan-B in case I cant find any more efficient, less-populated way of wiring the PCB.

berkeman
Mentor
What do you think about my suggestion in Post #6? Seems like a lot cleaner solution is to just use digital temperature sensors and read them all over a single serial bus...

I dont really understand that link very well, from what I gather its a whole device in itself right?
The thing is that I am trying to make a probe for a meter I already have.
I already have the meter with a very good processor that can measure up to .002 C. the problem however is the actual sensor itself.
While sensors can be just tubular probes, needle probes, surface probes etc. theres a very particular type of probe im trying here, its like a surface probe, but its very large and has a lot of "positions" in which you can place your actual sensor.

An off the shelf meter or data acquisition system made by a reputable vendor, like Fluke, Kiethly, or Agilent, is a valid solution. Specialists have worked long hours to overcome scores of problems that your common EE won't be cognizant of. Also, these companies have established the validity of their products performance through long term testing with NIST or an equivalent body.
Chips are only as good as the way they are used, and it is a very rare EE that understands how to design these products.

As to making precision temperature measurements in small / weird spaces, I've had some success with the Minco platinum RTDs. They will not give you anything close to the accuracy of a reference device, but if you access to a metrology group with a precision temperature bath, they can collect two or three data points giving you a temporary tertiary reference (i.e +/-.01C). Generally, it doesn't matter weather you achieve such accuracies because you will measure a weighted average of the measurement point and the environment.

berkeman