user48813: I am very new to Arduino. I want to add about 50 sensors to Arduino R3. I get good readings from 3 sensors, but when I connect 4th one, I get 'No devices found'.
Here is a diagram:

and here is the code I use:
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
#define TEMPERATURE_PRECISION 8
#define BAUD_RATE 9600

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// arrays to hold device addresses
DeviceAddress devices[10];
int devicesFound = 0;

void setup(void)
{
  // start serial port
  Serial.begin(BAUD_RATE);

  sensors.begin();

  devicesFound = sensors.getDeviceCount();

  // locate devices on the bus
  Serial.print("Locating devices...");
  Serial.print("Found ");
  Serial.print(devicesFound, DEC);
  Serial.println(" devices.");  

  // report parasite power requirements
  Serial.print("Parasite power is: ");
  if (sensors.isParasitePowerMode()) Serial.println("ON");
  else Serial.println("OFF");

  for (int i = 0; i < devicesFound; i++)
    if (!sensors.getAddress(devices[i], i))
      Serial.println("Unable to find address for Device" + i);

  // show the addresses we found on the bus
  for (int i = 0; i < devicesFound; i++)
  {    
    Serial.print("Device " + (String)i + " Address: ");
    printAddress(devices[i]);
    Serial.println();
  }

  for (int i = 0; i < devicesFound; i++)
    sensors.setResolution(devices[i], TEMPERATURE_PRECISION);
}

// function to print a device address
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    // zero pad the address if necessary
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}

// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC < 10)
    Serial.print("0");

  Serial.print(tempC);
}

// function to print a device's resolution
void printResolution(DeviceAddress deviceAddress)
{
  Serial.print("Resolution: ");
  Serial.print(sensors.getResolution(deviceAddress));
  Serial.println();    
}

// main function to print information about a device
void printData(DeviceAddress deviceAddress)
{
  Serial.print("Device Address: ");
  printAddress(deviceAddress);
  Serial.print(" ");
  printTemperature(deviceAddress);
  Serial.println();
}

void loop(void)
{
  if (devicesFound == 0)
  {
     Serial.println("No devices found.");
     return;
  }

  int start=millis();
  sensors.requestTemperatures();

  // print the device information
  for (int i = 0; i < devicesFound; i++)
  {
    printTemperature(devices[i]);
    if (i != devicesFound - 1)
      Serial.print(" ");    
  }  

  Serial.println();

  Serial.print(millis() - start);
  Serial.println(" ms passed.");
}

The resistor I use is 4.7 kΩ. What should I change to get good readings? And is it a problem to get reading from about 50 sensors?
UPDATE
So after a few trials, I managed to get readings for 18 sensors. I managed to have a mixed topology. What I did is I added close to sensors I didn't get reading a resistor (mainly 4.7k, but also few 100, 1k). At the moment I get occasionally -127 reading from some sensors, but I think I will fix that with CRC check in the program. Thanks for your help! –

user6936: First check the sensors
To check that the fourth sensor isn't broken and causing everything to fail, swap them around and then see if it still fails when adding the fourth sensor (although this time it will be a different fourth sensor).
That is to say, if your current fourth sensor becomes the second (and the second becomes the fourth), does it now fail on two sensors..? Or does it still fail on four?
If two (and three) work then the (previously) fourth sensor isn't broken.
Current supply issues
In that case, it could be that your power supply from the Arduino lacks sufficient current and you need to power the sensors with a separate external power supply - separate to the Arduino external PSU (especially when you start to use 50 sensors)1. If you do, don't forget to connect the GND of the Arduino (i.e. the GND of the Arduino PSU) to the external PSU for the sensors. However, for four sensors the current required would only be 4 x 4 mA = 16 mA so it shouldn't be a problem.
If you are using the USB port as your only power supply, then that will most likely cause problems. Make sure that you have an external power supply for the Arduino other than relying only on the USB. Also, again, 16 mA draw for 4 sensors should not be a problem.
Addtional links
There is a similar link to Michel's link to SE.Electronics, on SE.RPi: What is the maximum number of DS18B20 probes that can attached to one input port?
On the Arduino forum, there is this thread, Problem with DS18B20 OneWire and long cables:

I've done more with 1-Wire using dedicated interfaces rather than
connecting the device to my Arduino, but I suspect the same principles
will apply....
a) You are better off NOT using parasitic mode. The modest extra
"trouble" is well worth it.
b) Use cat-5 cable
c) The "magic resistor" (mentioned above) often helps. The right
value? Use a little trial and error!
d) Be sure to put multiple 1-Wire chips in a daisy chain, not a
"star"... i.e. ONE run of two wires, with 1-wire chips across it, like
the rungs of a ladder.... do NOT have several wires leading out from
where your Arduino is, with 1-Wire chips on each of the several "rays"
of the "star".
I have tested strings of three or four 1-Wire temperature sensors on
cat-5 cables of up to... umm, from memory... 40m? They WILL work! But
as I said... this was with 1-Wire adapters.

But cable length does not seem to be your problem, if your Fritzing diagram is an accurate portrayal...
In this long thread, someone has issues with over seven sensors, which seems similar to your issue, see Multiple DS18B20 reading isues. In summary, cable length and quality is important, and avoid a star topology.

1 To clarify, you will need two PSU. One for the Arduino, and one for the 50 sensors.

user31105: Max current
For 4 sensors I wouldn't expect problem, however, for 50 it will.
The VCC/GND pin has a maximum of 200 mA, see Arduino Pin Current Limitations.
(Update after remark of Gerben, thanks!):
However, these are for the ATMega, not the Arduino R3. See Arduino Voltage and Current. It's not an official document, but made by Gabriel Staples). It contains a lot of references. But the VCC can handle 0.5 or 1A depending on USB or battery power. 
This means:
The DS1820 uses 4 mA (checking a random datasheet), so 50 * 4 = 200 mA, which is way within 500 mA/1000 mA).
Non one wire sensors (not your case)
Since you have one wire sensors the following is not applicable (just leave it here for others):
None one-wire sensors use their own GPIO pin mostly. Since the Arduino doesn't have 50 GPIO pins, especially not for analog input, you need to have external IC(s), ADCs (Analog Digital Converters) or analog multiplexers, see also connecting more than 6 analog input pins to Arduino.
One wire sensors (your case)
You might find how many ds18b20 temperature sensors can I connect to one bus interesting.

48813: <p>I am very new to Arduino. I want to add about 50 sensors to Arduino R3. I get good readings from 3 sensors, but when I connect 4th one, I get 'No devices found'.</p>

<p>Here is a diagram:
<a href="https://i.stack.imgur.com/Dw6SZ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Dw6SZ.png" alt="enter image description here"></a></p>

<p>and here is the code I use:</p>

<pre><code>#include &lt;OneWire.h&gt;
#include &lt;DallasTemperature.h&gt;

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
#define TEMPERATURE_PRECISION 8
#define BAUD_RATE 9600

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&amp;oneWire);

// arrays to hold device addresses
DeviceAddress devices[10];
int devicesFound = 0;

void setup(void)
{
  // start serial port
  Serial.begin(BAUD_RATE);

  sensors.begin();

  devicesFound = sensors.getDeviceCount();

  // locate devices on the bus
  Serial.print("Locating devices...");
  Serial.print("Found ");
  Serial.print(devicesFound, DEC);
  Serial.println(" devices.");  

  // report parasite power requirements
  Serial.print("Parasite power is: ");
  if (sensors.isParasitePowerMode()) Serial.println("ON");
  else Serial.println("OFF");

  for (int i = 0; i &lt; devicesFound; i++)
    if (!sensors.getAddress(devices[i], i))
      Serial.println("Unable to find address for Device" + i);

  // show the addresses we found on the bus
  for (int i = 0; i &lt; devicesFound; i++)
  {    
    Serial.print("Device " + (String)i + " Address: ");
    printAddress(devices[i]);
    Serial.println();
  }

  for (int i = 0; i &lt; devicesFound; i++)
    sensors.setResolution(devices[i], TEMPERATURE_PRECISION);
}

// function to print a device address
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i &lt; 8; i++)
  {
    // zero pad the address if necessary
    if (deviceAddress[i] &lt; 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}

// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC &lt; 10)
    Serial.print("0");

  Serial.print(tempC);
}

// function to print a device's resolution
void printResolution(DeviceAddress deviceAddress)
{
  Serial.print("Resolution: ");
  Serial.print(sensors.getResolution(deviceAddress));
  Serial.println();    
}

// main function to print information about a device
void printData(DeviceAddress deviceAddress)
{
  Serial.print("Device Address: ");
  printAddress(deviceAddress);
  Serial.print(" ");
  printTemperature(deviceAddress);
  Serial.println();
}

void loop(void)
{
  if (devicesFound == 0)
  {
     Serial.println("No devices found.");
     return;
  }

  int start=millis();
  sensors.requestTemperatures();

  // print the device information
  for (int i = 0; i &lt; devicesFound; i++)
  {
    printTemperature(devices[i]);
    if (i != devicesFound - 1)
      Serial.print(" ");    
  }  

  Serial.println();

  Serial.print(millis() - start);
  Serial.println(" ms passed.");
}
</code></pre>

<p>The resistor I use is 4.7&nbsp;k&Omega;. What should I change to get good readings? And is it a problem to get reading from about 50 sensors?</p>

<h2>UPDATE</h2>

<p>So after a few trials, I managed to get readings for 18 sensors. I managed to have a mixed topology. What I did is I added close to sensors I didn't get reading a resistor (mainly 4.7k, but also few 100, 1k). At the moment I get occasionally -127 reading from some sensors, but I think I will fix that with CRC check in the program. Thanks for your help! –</p>
 6936: <h3>First check the sensors</h3>
<p>To check that the fourth sensor isn't broken and causing everything to fail, swap them around and then see if it still fails when adding the fourth sensor (although this time it will be a different fourth sensor).</p>
<p>That is to say, if your current fourth sensor becomes the second (and the second becomes the fourth), does it now fail on two sensors..? Or does it still fail on four?</p>
<p>If two (and three) work then the (previously) fourth sensor isn't broken.</p>
<h3>Current supply issues</h3>
<p>In that case, it <em>could</em> be that your power supply from the Arduino lacks sufficient current and you need to power the sensors with a separate external power supply - separate to the Arduino external PSU (especially when you start to use 50 sensors)<sup>1</sup>. If you do, don't forget to connect the GND of the Arduino (i.e. the GND of the Arduino PSU) to the external PSU for the sensors. However, for four sensors the current required would only be 4 x 4 mA = 16 mA so it shouldn't be a problem.</p>
<p>If you are using the USB port as your only power supply, then that will most likely cause problems. Make sure that you have an external power supply for the Arduino other than relying only on the USB. Also, again, 16 mA draw for 4 sensors should not be a problem.</p>
<h3>Addtional links</h3>
<p>There is a similar link to Michel's link to SE.Electronics, on SE.RPi: <a href="https://raspberrypi.stackexchange.com/questions/23701/what-is-the-maximum-number-of-ds18b20-probes-that-can-attached-to-one-input-port">What is the maximum number of DS18B20 probes that can attached to one input port?</a></p>
<p>On the Arduino forum, there is this thread, <a href="https://forum.arduino.cc/index.php?topic=20574.0" rel="nofollow noreferrer">Problem with DS18B20 OneWire and long cables</a>:</p>
<blockquote>
<p>I've done more with 1-Wire using dedicated interfaces rather than
connecting the device to my Arduino, but I suspect the same principles
will apply....</p>
<p>a) You are better off NOT using parasitic mode. The modest extra
&quot;trouble&quot; is well worth it.</p>
<p>b) Use cat-5 cable</p>
<p>c) The &quot;magic resistor&quot; (mentioned above) often helps. The right
value? Use a little trial and error!</p>
<p>d) Be sure to put multiple 1-Wire chips in a daisy chain, not a
&quot;star&quot;... i.e. ONE run of two wires, with 1-wire chips across it, like
the rungs of a ladder.... do NOT have several wires leading out from
where your Arduino is, with 1-Wire chips on each of the several &quot;rays&quot;
of the &quot;star&quot;.</p>
<p>I have tested strings of three or four 1-Wire temperature sensors on
cat-5 cables of up to... umm, from memory... 40m? They WILL work! But
as I said... this was with 1-Wire adapters.</p>
</blockquote>
<p>But cable length does not seem to be your problem, if your Fritzing diagram is an accurate portrayal...</p>
<p>In this long thread, someone has issues with over seven sensors, which seems similar to your issue, see <a href="https://www.raspberrypi.org/forums/viewtopic.php?f=37&amp;t=64477&amp;sid=89ab9086e703d216699b0b4d96f633c3" rel="nofollow noreferrer">Multiple DS18B20 reading isues</a>. In summary, cable length and quality is important, and avoid a <strong>star</strong> topology.</p>
<hr />
<p><sup>1</sup> To clarify, you will need two PSU. One for the Arduino, and one for the 50 sensors.</p>
 31105: <p><strong>Max current</strong></p>

<p>For 4 sensors I wouldn't expect problem, however, for 50 it will.
The VCC/GND pin has a maximum of 200 mA, see <a href="http://playground.arduino.cc/Main/ArduinoPinCurrentLimitations" rel="nofollow noreferrer">Arduino Pin Current Limitations</a>.</p>

<p>(Update after remark of Gerben, thanks!):
However, these are for the ATMega, not the Arduino R3. See <a href="https://www.electricrcaircraftguy.com/2014/02/arduino-power-current-and-voltage.html" rel="nofollow noreferrer">Arduino Voltage and Current</a>. It's not an official document, but made by Gabriel Staples). It contains a lot of references. But the VCC can handle 0.5 or 1A depending on USB or battery power. </p>

<p>This means:
The DS1820 uses 4 mA (checking a random datasheet), so 50 * 4 = 200 mA, which is way within 500 mA/1000 mA).</p>

<p><strong>Non one wire sensors (not your case)</strong></p>

<p>Since you have one wire sensors the following is not applicable (just leave it here for others):</p>

<p>None one-wire sensors use their own GPIO pin mostly. Since the Arduino doesn't have 50 GPIO pins, especially not for analog input, you need to have external IC(s), ADCs (Analog Digital Converters) or analog multiplexers, see also <a href="https://robotics.stackexchange.com/questions/1227/connecting-more-than-six-analog-input-pins-to-arduino">connecting more than 6 analog input pins to Arduino</a>.</p>

<p><strong>One wire sensors (your case)</strong></p>

<p>You might find <a href="https://electronics.stackexchange.com/questions/242816/how-many-ds18b20-temperature-sensors-can-i-connect-to-one-bus-arduino">how many ds18b20 temperature sensors can I connect to one bus</a> interesting.</p>
