I am designing a circuit to read a large (500+) number of analog sensors. The goal was to do this on all one circuit and landed on using multiplexers. I started with the CD4051B which allowed me to read 8 sensors with four pins on my microcontroller. Cool, but not impressive. Doing some more digging I came across this figure in the datasheet (page 14).
This configuration, which only shows 3 4051s, can actually handle four now allows me to use 5 pins on a microcontroller to read 24 sensors. An improvement for sure, but I needed more.
Now hoping over to the CD4556 datasheet, I came across this figure (page 5).
Then from this figure I was able to combine the CD4051 circuit and end up being able to read 256 sensors only using 8 pins on my microcontroller! This was perfect for my application.
Now for the actual question, I built a smaller version of this circuit which allows me to read 80 sensors on a breadboard to do some testing. This circuit works, but there is some weird stuff that I am hoping to mitigate.
For example, let’s say I interact with sensor one and the values move up and down as expected with the rest of the sensors remaining stable. However, the minimum value the sensor reaches is around 5000. Now, if I go over to sensor two and interact with it while also interacting with sensor one the minimum values will drop significantly (to around 1500). When interacting with the sensors without any multiplexers (or just one or two layers) the values get even lower.
Did I just hit the limitations of this system? Or am I experiencing something like leakage current that can be resolved. I will add that I am not using any type of resistors or capacitors and hooking everything up exactly as the datasheets show.