Multiple Pressure Sensors with Arduino Uno

UNO has 6 Analog INPUTS. I need to use 2 of them for I2C bus, and use 3 Freescale MPX analog pressure sensors. This will leave me only one free Analog IN. Is is somewhat possible to make those sensors use less A IN?

You can use an analog multiplexer to get more analog inputs:

Requires digital pins 2,3,4,5 and analog pins A0,A1,A2
Puts 16-way multiplexers on A0, A1, and A2 to give you 48 analog (or digital) inputs.

a bit complicated programming for newcommer but good example how it is possible to do.


Simpler may be a 4051 or Maxim DG-408 8 channel multiplexer. Since you only have 3 inputs it would use 2 digital outputs for address and 1 analog input.

Please note that the Arduino itself has only one ADC that is multiplexed already over the 6 pins,
so multiplexing again e.g. to 12 pins will decrease the max. samples per second.

is this sampling drop huge? Or slowing down sketch processing?

For my needs sampling rate on 10Hz will be sufficient for pressure measuring

Aggregate sample rate using alalogRead is about 8.5KHz so 10Hz is no problem. You could get over 2500 samples per second per channel if needed. If your pressure transducers are of the 0-5V (0.2 - 4.7v) output the multiplexer would not cause significant error. For example the DG-408 on resistance is less than 100 ohms.

they will be tested and calibrated before production use to have proper values so that will not be a problem