Arduino Nano at 8Mhz and 3.3V DS18B20 Temperature Sensor


I made a 'custom' PCB that integrates the Arduino Nano running at 3.3V and 8Mhz and the temperature sensor DS18B20. I am downloading the code using the AVRISP. Due I was not able to download the bootloader successfully to my board.

So, using the Dallas Temperature library and the OneWire I just want to see what is the current temperature getting by the sensor. The problem is that I am getting 'TI: -127' on the Serial Monitor. I am not sure why is this happening. So, I physically connected a cable to the output pin on the PCB to another Arduino which is the Arduino Duemilanove which came already assembled, and I saw the output as 'TI: 24.67', which is the output I expected.

I used the same schematic from the website and I just added the temperature sensor, but removed the FTDI but not the pins to interface the SparkFun FTDI to be see the output from the micro.

Any suggestions?


do you have the pull up resistor in place? (page 3 datasheet)

TYpical the voltage should be between 3 and 5.5V (page 17) => can you check the voltage on the pins of the 3.3Volt device if it can deliver 3.3Volt?

my 2 suggestions, rob

Thanks for Reply.

Yes, there is the 4.7k resistor. Below is the schematic used.

YOu are using parasite power ?

From the datasheet:

However, when the DS18B20-PAR is performing temperature conversions or copying data from the scratchpad memory to EEPROM, the operating current can be as high as 1.5 mA. This current can cause an [u]unacceptable voltage drop[/u] across the weak 1-Wire pullup resistor and is more current than can be supplied by CPP. To assure that the DS18B20-PAR has sufficient supply current, it is necessary to provide a strong pullup on the 1-Wire bus whenever temperature conversions are taking place or data is being copied from the scratchpad to EEPROM. This can be accomplished by using a MOSFET to pull the bus directly to the rail as shown in Figure 2.

A job for the Voltmeter / scope