Dapatkah saya menghubungkan dua Perangkat 1-Kawat yang berbeda ke pin data yang sama pada Arduino?

8

Saya telah menggunakan sensor suhu DS18B20 berkali-kali dan memahami bahwa mereka dapat dirangkai pada pin data yang sama. Bisakah dua sensor berbeda dihubungkan dengan cara yang sama?

Misalnya, dapatkah saya menggunakan pin data yang sama untuk membaca data dari DS18B20 dan DS2417 ? Apakah akan ada batasan terkait dengan perangkat keras atau aspek kode?

Lihatlah contoh kode di arduino.cc :

if ( addr[0] == 0x10) {
      Serial.print("Device is a DS18S20 family device.\n");
  }
  else if ( addr[0] == 0x28) {
      Serial.print("Device is a DS18B20 family device.\n");
  }
  else {
      Serial.print("Device family is not recognized: 0x");
      Serial.println(addr[0],HEX);
      return;
  }

Jelas bahwa setidaknya ada beberapa toleransi untuk perangkat yang berbeda, namun DS18B20 dan DS18S20 keduanya adalah sensor suhu dan tidak semua yang berbeda

JohnB
sumber

Jawaban:

7

Tampaknya tidak ada perbedaan dalam protokol untuk berbagai chip, dan umumnya satu protokol kawat memungkinkan Anda untuk mencampur dan mencocokkan. Protokol satu kawat di sini pada dasarnya memiliki cara bersepeda antar perangkat. Perangkat lain mengabaikan semua komunikasi sampai pulsa tertentu dikirim, yang beralih ke perangkat berikutnya. Dengan pemikiran ini, tampaknya logis bahwa IC daisy-chaining yang berbeda akan bekerja dengan baik, karena hanya ada titik kecil di mana terdapat lebih dari satu IC yang benar-benar terlibat dalam komunikasi. Dan pada saat itu protokol tidak ada hubungannya dengan perangkat tertentu, itu hanya masalah pulsa reset.

Selain itu, gambar di sini membuatnya sangat jelas bahwa protokol 1 Wire memungkinkan seseorang untuk rantai perangkat yang berbeda:

masukkan deskripsi gambar di sini

Manishearth
sumber
1
+1, jawaban yang bagus. The 1-Wire protokol adalah dengan Dallas Semiconductor Corp
Anindo Ghosh
@AnindoGhosh: Hm. Saya pikir itu 1WP yang berbeda, tetapi Anda tampaknya benar :)
Manishearth