Witam
Chciałbym zapisać w tablicy adresy wszystkich czujników którę są podpięte. Niby spoko ale program daje różne wyniki w zależności czy są podłączone 2 czujniki czy jeden. Korzystam z DS18B20. Jak są podłączone oba to pokazuje że ich adresy to
281BCE730A000008
00281BCE730A008B
A kiedy podłączam je pojedynczo to jeden czujnik ma adres 281BCE730A000A00 a drugi 28783F3A0A000A00
To kod programu
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer;
byte** tablicaAdresow;
byte liczbaCzujnikow;
void setup() {
delay(1000);
Serial.begin(9600);
Serial.println("Stacja meterologiczna konsola");
Serial.println("Szukanie czujnikow ...");
sensors.begin();
Serial.print("Znaleziono ");
liczbaCzujnikow = sensors.getDeviceCount();
Serial.print(liczbaCzujnikow, DEC);
Serial.println(" czujnikow.");
// Must be called before search()
byte adresses[8];
tablicaAdresow = new byte*[liczbaCzujnikow];
for(int i = 0;i<liczbaCzujnikow;i++)
{
tablicaAdresow[i] = new byte[8];
}
byte licznik = 0;
oneWire.reset_search();
while(oneWire.search(adresses))
{
strcpy(tablicaAdresow[licznik],adresses);
}
printAdresses();
}
void loop() {
}
void printAdresses()
{
for(int j = 0;j<liczbaCzujnikow;j++)
{
for (uint8_t i = 0; i < 8; i++)
{
if (tablicaAdresow[j][i] < 16) Serial.print("0");
Serial.print(tablicaAdresow[j][i], HEX);
}
Serial.println();
}
}
Proszę o pomoc