# Maximum number of DS18B20 on one pin

Hi does some one know how many DS18B20 sensors i can connect to in digital pin?
I want to connect 50 sensors on arduino uno R3 is it posible?
If so is there any documentation of it?

tnx Koenko

Have you heard of Google ? (and Wikipedia ?)

The bus has an algorithm to recover the address of every device on the bus. Since the address includes the device type and a CRC, recovering the address roster also produces a reliable inventory of the devices on the bus. The 64-bit address space is searched as a binary tree, allowing up to 75 devices to be found per second.

allowing up to 75 devices to be found per second

That quote is concerned with the rate at which devices can be found by address detection. And it is a RATE, not a number of devices. If you can find 25 devices in 1/3 of a second, or 225 devices in 3 seconds, you get that detection RATE. It doesn't mean that you can actually have 75, or 25, or 225 devices on your network. The address detection process for the 1-wire scheme is a separate issue from actually reading data from the sensors.

There is no specific limit to the number of devices, it is determined by electrical issues related to the capacitance and impedance of your wiring. It varies depending on how long your wires are.

Thank you! That is very helpful. I am sure the OP will find it useful as well.

These gadgets each have a 48 bit address. Every device that comes from their factory allegedly has a unique 48 bit ID. That is billions of ID numbers.

If you have, say, 10 ( or 50 ) devices on your network, the first thing you have to do is find out what the numbers of your 10 ( or 50 ) devices are. Your master device ( ie. your arduino ), has to look for all of the BILLIONS of 48 bit addresses, and notice which 10 of those possible billions of addresses responds. Once it has those 10 ( or 50 ) addresses, it keeps them in a table and only tries to talk to those specific addresses.

Suppose you have a cell phone and 50 friends and you lost all your friends number. You could dial ALL THE CELL PHONES IN THE WORLD and ask them if they are your friend, and then write down the numbers of the 50 that you find. This would be an impractical process. Fortunately, they have a slightly smarter scheme, but it still takes a fairly long time. They use subsets of the 48 bit addresses to save time.

Every device that comes from their factory allegedly has a unique 48 bit ID

You could just run the example in the ONEWIRE library and capture the serial monitor output of all your 64-bit ROM addresses (8 BYTES x 8 bits/byte = 64 bits. page one of datasheet

Each Device has a Unique 64-Bit Serial Code Stored in an On-Board ROM

Once you have the terminal capture file with the addresses then just follow the instructions (or examples) in this post..

http://forum.arduino.cc/index.php?topic=239393.new;topicseen#new

Each DS18B20 contains a unique 64–bit code (see Figure 6) stored in ROM. The least significant 8 bits
of the ROM code contain the DS18B20’s 1-Wire family code: 28h. The next 48 bits contain a unique
serial number. The most significant 8 bits contain a cyclic redundancy check (CRC) byte that is
calculated from the first 56 bits of the ROM code.
page 6

so you need only to remember 6 bytes of the address (especially if there are more than 100 devices this adds up)

That's a lot of cutting and pasting of numbers from the teminal capture file and then you still have to add the "0x" in front of the number to make it a valid Hex value. (see the linked post for details on the whole process) I have a sketch displaying six temps on an lcd, each with it's unique temp label (one , two , etc. because they are on a breadboard so it wouldn't make any sense to name them "inside" or "outside" but I could just as well have made the labels read "Tom" "Dick" "Harry" etc....

Tnx for helping it was very usefull.

Hi Koenko