I am using this code to get the addresses of the sensors.
// Programa : Scan DS18B20
// Alterações : Arduino e Cia
// Este programa procura pelos sensores no circuito e mostra o valor
// do endereço físico de cada sensor no Serial Monitor
#include <OneWire.h>
// Conecte o pino central dos sensores ao pino 10 do Arduino
OneWire ds(2);
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
}
This is the return.
Encontrado sensor 'DS18B20' com endereco:
0x28, 0xAC, 0x0A, 0x38, 0x05, 0x00, 0x00, 0xE3
Encontrado sensor 'DS18B20' com endereco:
0x28, 0x5D, 0x67, 0x38, 0x05, 0x00, 0x00, 0x5B
Encontrado sensor 'DS18B20' com endereco:
0x28, 0xFD, 0xF5, 0x2D, 0x07, 0x00, 0x00, 0xC5
Encontrado sensor 'DS18B20' com endereco:
0x28, 0x33, 0x6B, 0x38, 0x05, 0x00, 0x00, 0xAA
Encontrado sensor 'DS18B20' com endereco:
0x28, 0xFF, 0x7C, 0x61, 0x92, 0x15, 0x01, 0x31
Encontrado sensor 'DS18B20' com endereco:
0x28, 0xFF, 0x65, 0xA1, 0x92, 0x15, 0x01, 0x87
Encontrado sensor 'DS18B20' com endereco:
0x28, 0xFF, 0x55, 0x65, 0x92, 0x15, 0x01, 0x34
Encontrado sensor 'DS18B20' com endereco:
0x28, 0xFF, 0xD5, 0x64, 0x92, 0x15, 0x01, 0x70
Encontrado sensor 'DS18B20' com endereco:
0x28, 0xFF, 0xB5, 0x6E, 0x92, 0x15, 0x01, 0x7A
My question...
That determines sequence is used? Hex determines the sequence?
Even if I change the place of sensor, the sequence remains the same.
Thanks for all.