Puis-je connecter deux appareils 1 fil différents à la même broche de données sur un Arduino?

8

J'ai utilisé des capteurs de température DS18B20 à plusieurs reprises et je comprends qu'ils peuvent être connectés en guirlande sur la même broche de données. Deux capteurs différents peuvent-ils être connectés de la même manière?

Par exemple, pourrais-je utiliser la même broche de données pour lire les données d'un DS18B20 et d'un DS2417 ? Y aurait-il des limitations concernant le matériel ou l'aspect du code?

Jetons un œil à l'exemple de code sur 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;
  }

Il est clair qu’il y a au moins certaine tolérance pour différents appareils, mais les DS18B20 et DS18S20 sont tous deux des capteurs de température et ne sont pas si différents

JohnB
la source

Réponses:

7

Il ne semble pas y avoir de différence dans le protocole pour les différentes puces, et généralement les protocoles à un fil vous permettent de mélanger et de faire correspondre. Le protocole à un fil ici a essentiellement une façon de faire un cycle entre les appareils. D'autres appareils ignorent toutes les communications jusqu'à ce qu'une certaine impulsion soit envoyée, qui passe au prochain appareil. Dans cette optique, il semble logique que la connexion en série de différents circuits intégrés fonctionne également, car il n'y a qu'un petit moment dans le temps où plusieurs circuits intégrés sont réellement impliqués dans la communication. Et à ce stade, le protocole n'a rien à voir avec le périphérique spécifique, il s'agit simplement d'une impulsion de réinitialisation.

En outre, l'image ici montre clairement que le protocole 1 Wire permet de chaîner différents appareils:

entrez la description de l'image ici

Manishearth
la source
1
+1, bonne réponse. Le protocole 1-Wire est de Dallas Semiconductor Corp.
Anindo Ghosh
@AnindoGhosh: Hm. Je pensais que c'était un 1WP différent, mais vous semblez avoir raison :)
Manishearth