com 2 sensores, e vamos utilizar 2 programas para :1 - Identificar o endereco fisico de cada sensor2 - Utilizar esse endereco fisico para obter a temperatura do sensor desejadoOs exemplos, com as alteracoes de praxe (traducoes/comentarios), foram retiradas do site Hacktronics :Monte o circuito abaixo, tomando cuidado com a pinagem do sensor :Obs : Utilizei resistores de 4K7Baixe as bibliotecas abaixo, e copie para a pasta LIBRARIES da IDE do seu Arduino :Biblioteca OneWire :http://www.hacktronics.com/code/OneWire.zipBiblioteca Dallas :http://www.hacktronics.com/code/DallasTemperature.zipAgora carregue o programa abaixo, que vai identificar os enderecos fisicos dos sensores: 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960// Programa : Scan DS18B20// Alteracoes : Arduino e Cia// Este programa procura pelos sensores no circuito e mostra o valor // do endereco fisico de cada sensor no Serial Monitor#include // Conecte o pino central dos sensores ao pino 10 do ArduinoOneWire ds(10); void setup(void) { Serial.begin(9600); discoverOneWireDevices();}void discoverOneWireDevices(void) { byte i; byte present = 0; byte data[12]; byte addr[8]; Serial.print("Procurando dispositivos DS18B20...\n\r"); while(ds.search(addr)) { Serial.print("\n\rEncontrado sensor \'DS18B20\' com endereco:\n\r"); for( i = 0; i < 8; i++) { Serial.print("0x"); if (addr[i] < 16) { Serial.print('0'); } Serial.print(addr[i], HEX); if (i < 7) { Serial.print(", "); } } if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.print("CRC nao e valido!\n"); return; } } Serial.print("\n\r\n\rFinal da verificacao.\r\n"); ds.reset_search(); return;}void loop(void) { // Loop Vazio} Apos transferir o programa para o Arduino, abra o Serial monitor, e voce vera uma tela como essa, mostrando o endereco de cda DS18B20 :Agora que voce ja tem o endereco de cada sensor, vamos utilizar um outro programa que vai usar os enderecos obtidos acima, relacionar cada um com uma variavel, e mostrar as temperaturas na tela : 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364// Programa : Leitor temperatura sensores DS18B20// Alteracoes : Arduino e Cia// Este programa usa o endereco fisico de cada sensor para mostrar as // informacoes de temperatura no Serial Monitor#include #include // Conectar o pino central dos sensores ao pino 10 do Arduino#define ONE_WIRE_BUS 10// Setup a oneWire instance to communicate with any OneWire devicesOneWire oneWire(ONE_WIRE_BUS);// Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire);DeviceAddress insideThermometer = { 0x28, 0xE1, 0x20, 0x9D, 0x04, 0x00, 0x00, 0x1A };DeviceAddress outsideThermometer = { 0x28, 0xE5, 0x82, 0x9D, 0x04, 0x00, 0x00, 0x76 };DeviceAddress dogHouseThermometer = { 0x28, 0x59, 0xBE, 0xDF, 0x02, 0x00, 0x00, 0x9F };void setup(void){ // start serial port Serial.begin(9600); // Start up the library sensors.begin(); // set the resolution to 10 bit (good enough?) sensors.setResolution(insideThermometer, 10); sensors.setResolution(outsideThermometer, 10); sensors.setResolution(dogHouseThermometer, 10);}void printTemperature(DeviceAddress deviceAddress){ float tempC = sensors.getTempC(deviceAddress); if (tempC == -127.00) { Serial.print("Erro ao ler temperatura !"); } else { Serial.print("C: "); Serial.print(tempC); Serial.print(" F: "); Serial.print(DallasTemperature::toFahrenheit(tempC)); }}void loop(void){ delay(10000); Serial.print("Lendo temperaturas...\n\r"); sensors.requestTemperatures(); Serial.print("Temperatura Sensor 1: "); printTemperature(insideThermometer); Serial.print("\n\r"); Serial.print("Temperatura Sensor 2: "); printTemperature(outsideThermometer); Serial.print("\n\r"); Serial.print("Temperatura Sensor 3: "); printTemperature(dogHouseThermometer); Serial.print("\n\r\n\r");}Abra o serial monitor , para obter a temperatura dos sensores, em Celsius e Fahrenheit :Por enquanto e so. Mais informacoes sobre o sensor e como obter o datasheet voce pode encontrar no meu artigo anterior sobre o DS18B20, clicando aqui.Fonte: http://www.arduinoecia.com.br/2013/04/sensor-de-temperatura-ds18b20_11.html