06-01-2022, 22:30
Możesz czytać adresy czujników bezpośrednio przed odczytem temperatury.
Zamiast tego:
Daj to:
Można też zrobić to lepiej i obsłużyć brak jakiegoś czujnika:
Dla trzech czujników jeszcze to przejdzie, ale dla większej ilości lepiej to zrobić na tablicy.
Możesz oczywiście nie korzystać z adresów czujników i zrobić to na ich indeksach.
Albo:
Oczywiście, można podłączyć każdy czujnik pod inny pin. Jest to opisane w przykładach do biblioteki.
Zamiast tego:
Kod:
DeviceAddress DS_NR1 = { 0x28, 0xAD, 0xD4, 0x76, 0xE0, 0x01, 0x3C, 0xF6 }; // Tu wpisać adresy czujników
DeviceAddress DS_NR2 = { 0x28, 0x4D, 0x1C, 0x76, 0xE0, 0x01, 0x3C, 0xC3 }; // do szukania adresów program OneWireSearch z przykładów DallasTemperature
DeviceAddress DS_NR3 = { 0x28, 0xB0, 0xBF, 0x76, 0xE0, 0x01, 0x3C, 0x86 };
Daj to:
Kod:
oneWire.search(DS_NR1);
oneWire.search(DS_NR2);
oneWire.search(DS_NR3);
Można też zrobić to lepiej i obsłużyć brak jakiegoś czujnika:
Kod:
if (!oneWire.search(DS_NR1)) funkcjaObslugiBledu(DS_NR1);
if (!oneWire.search(DS_NR2)) funkcjaObslugiBledu(DS_NR2);
if (!oneWire.search(DS_NR3)) funkcjaObslugiBledu(DS_NR3);
Dla trzech czujników jeszcze to przejdzie, ale dla większej ilości lepiej to zrobić na tablicy.
Możesz oczywiście nie korzystać z adresów czujników i zrobić to na ich indeksach.
Kod:
for (int i = 0; i < 3; i++) {;
jakasZmienna[i] = sensors.getTempCByIndex(i);
}
Albo:
Kod:
for (int i = 0; i < sensors.getDeviceCount(); i++) {;
jakasZmienna[i] = sensors.getTempCByIndex(i);
}
Oczywiście, można podłączyć każdy czujnik pod inny pin. Jest to opisane w przykładach do biblioteki.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.