# Arduino Reading Multiple Sensors - Voltage Divider

Hi Team,

In need of your assistance.. I am currently running a Arduino Mega 2560 which I have connected to 16 Sheds (To Monitor / Log / Report) to measure temperatures.. If the temps get below a 'n" value or above a "n" value it sends a sms to multiple mobiles.

My problem is that the maximum voltage (DC) output from these sheds is 10 volts (which equates to 100 degrees C) yet the arduino has a max of 5 v for the Analog pins.

I posted some time ago and had great response to simply put a voltage diver into the system. Easy AS... using 2 of the same resistor..

The Issue is how can I use a single pair of resistors to accomplish this. Remember I have 1 feed (Room) going into its own pin.

I don't believe I can simply put them all into 1 Analog input pin as the Arduino won't know what room it is dealing with.

Regards
Witsend

What's the max voltage?

If it's 10v then yeah two 1k resistors would be fine (providing it does not go over 10v) .

10v dc is the max it will output from the Room sensors.

How can I just use 1 set of resistors, but keep the allocation of rooms to their own analog input pin.

I know the long winded way is to have the 2 resistors before the Analog pin but this means wiring up 32 resistors to complete all the rooms.. Im trying to see if only 1 set of resistors can be used.

I guess you could use a multiplexer, feed all the voltages in to a chip, then you can cycle through each voltage in turn using the same 2 resistors to measure the temperature from all the sheds.

As a starting point to see what I mean take a look at 4051 datasheet.

Excuse my ignorance....

But with a multiplexer how do you identify which room (address) the voltage is coming from.

I'll take a look at the sheet.. Thanks for the info

Thanks for the info...

I've read the data sheet and I think I understand what is needed...

If there is a 16 channel chip of the same sort I shall use this. If not, the I will have 2 of these chips.

My understanding is that I need to do the following:-

Connect the Vcc from each room to their own allocated pin (input) on the multiplexer.

Connect the voltage divider to the output which then becomes the input into the Arduino board at half its voltage.

I then simply do a call to read the room via arduino..

Im new to this stuff... so bare with me...

Yup that pretty much is it ...

Someone might know of a 16 channel chip.... 4051 is cheap and cheerful but it handles up to 16v (so careful which chip you pick)

the below might be of interest.

zoomkat:
the below might be of interest.

https://www.sparkfun.com/products/9056

This is a cmos version, higher voltages would be an issue .

cjdelphi:
4051 is cheap and cheerful but it handles up to 16v (so careful which chip you pick)

Any analogue multiplexing chip will only handle voltages that are within the power rails attached to it. So to get it tho handle 16V you must feed it with 16V on the Vdd pin. There is a negative Vee pin for when you want it to switch voltages lower then ground.

cjdelphi:

zoomkat:
the below might be of interest.

https://www.sparkfun.com/products/9056

This is a cmos version, higher voltages would be an issue .

I read the data sheet and it has a max of 6v.. thanks

My problem is that the maximum voltage (DC) output from these sheds is 10 volts (which equates to 100 degrees C) yet the arduino has a max of 5 v for the Analog pins.

I thought the plan was to use a voltage divider to drop a max 10v output of the temperature sensor to 5v max for input to the arduino analog input pin.

What you say is correct...

Maybe I'm missing a really simply solution...

Requirement is:-

16 Rooms - Currently Max 10v dc output which is 100 degrees c.
I need to divide the voltage by 50% so its maximum for the arduino is not reached. (5v dc).

I dont want to use a voltage divider for every room (that would be using 32 resistors, as well as messy wiring / circuit board).

I want to use only 2 resistors to bring the voltage from 10v dc (100 degrees c) down to 5v dc for all rooms.

My program will change the values from if 5v dc then the temp is 100 c, if 2.5v dc then the value is converted to 50 c.

witsendestate:
What you say is correct...

Maybe I'm missing a really simply solution...

Requirement is:-

16 Rooms - Currently Max 10v dc output which is 100 degrees c.
I need to divide the voltage by 50% so its maximum for the arduino is not reached. (5v dc).

I dont want to use a voltage divider for every room (that would be using 32 resistors, as well as messy wiring / circuit board).

I want to use only 2 resistors to bring the voltage from 10v dc (100 degrees c) down to 5v dc for all rooms.

My program will change the values from if 5v dc then the temp is 100 c, if 2.5v dc then the value is converted to 50 c.

I don't believe there is an easier way (except using multiplexing)....

I dont want to use a voltage divider for every room (that would be using 32 resistors, as well as messy wiring / circuit board).

Well, you might not have a much better choice. I'd probably go with trim pots like below to allow for tweaking the output of each sensor.

http://www.ebay.com/itm/10pcs-3296W-104-100K-ohm-3296W-Trim-Pot-Trimmer-Potentiometer-new-/330810783442?pt=LH_DefaultDomain_0&hash=item4d05dbf6d2