Pages: [1]   Go Down
Author Topic: Arduino with multiple DS18S20's  (Read 1142 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have wired my house with 6 DS18S20's. Each reads correctly but when I connect all six I get trash. I can get two to read properly but the third kills the first two.
I am using the 5V supply on the Duemilanove card and I have an Ethernet Shield. Am I overloading the power supply? I have not tried using an external 5V supply but that will be my nest step.
Logged

Mobile, AL
Offline Offline
Sr. Member
****
Karma: 0
Posts: 314
CAUTION!-Slow Learner
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'd guess you've checked the addresses?

Put a voltmeter on the Vcc pin.... are you using parasitic power? How many can be powered via parasitic power?

Just some ideas.

Ken H>
Logged

Rural Arizona
Offline Offline
Edison Member
*
Karma: 7
Posts: 1711
Incorrigible tinkerer
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Am I overloading the power supply?
Those chips draw so little power the odds are > 99% that you're not.

The most likely culprit is noise:  depending on how the sensors are wired,  you could be creating a giant noise antenna,  with each sensor you add increasing the noise a little until it eventually overwhelms the signal.

Did you add the external pull-up,  as recommended on the Playground page?

Are the cables to the sensors shielded (or,  at least,  twisted pair like Cat5)?

There's an app note on the Maxim site with info on how the pros do 1-Wire networks.  You may find that helpful.
Logged

Lancashire, UK
Offline Offline
Edison Member
*
Karma: 9
Posts: 1991
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

There things draw a miniscule amount of power, they have to, otherwise they would get warm whch is something of a downer when you're trying to measure temperature with them.  I'd recommend you don't use parasitic power, and if your cables are more than a couple of metres, use twisted pair cable.  Put the pull up resistor at the far end of the cable (away from the arduino) and you could try reducing the value of the pull up (2k wouldn't do any harm),   The better your cable, the further you can run them before you hit problems.  
Logged


Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 627
Posts: 34229
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You can only read them one at a time if you are using parasitic power. That is give the command for a temperature conversion for one. Then wait for it to finish, then read it.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

These are very helpful - thank you.
I have been pulled out of town and can not rewire until next weekend. Several of the DS18S20s are on long lines ~50ft, the pull up is 4.7K and at the Arduino, and I am using parasitic power.
My first action will be to power Vdd directly (no parasitic power) and move the pull up close to the sensor. Hopefully this will fix it. Will keep you posted.
Thanks
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 83
I do my own experiments.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

around 50 feet? I didn't think they'd work that far away. Are you using twisted or untwisted wires at the moment?
Logged

UK
Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

Out of interest, did you get this sorted?

What was the problem?

Ian
Logged

Pages: [1]   Go Up
Jump to: