¿Puedo conectar dos dispositivos 1-Wire diferentes al mismo pin de datos en un Arduino?

8

He usado los sensores de temperatura DS18B20 muchas veces y entiendo que se pueden conectar en cadena en el mismo pin de datos. ¿Se podrían conectar dos sensores diferentes de la misma manera?

Por ejemplo, podría usar el mismo pin de datos para leer datos de un DS18B20 y un DS2417 ? ¿Habría alguna limitación con respecto al hardware o al aspecto del código?

Echando un vistazo al código de ejemplo en 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;
  }

Está claro que hay al menos alguna tolerancia para diferentes dispositivos, sin embargo, el DS18B20 y el DS18S20 son sensores de temperatura y no son tan diferentes

    
pregunta JohnB

1 respuesta

7

Parece que no hay diferencia en el protocolo para los distintos chips, y generalmente los protocolos de un cable le permiten mezclar y combinar. El protocolo de un cable aquí básicamente tiene una forma de cambiar entre los dispositivos. Otros dispositivos ignoran todas las comunicaciones hasta que se envía un cierto pulso, que cambia al siguiente dispositivo. Con esto en mente, parece lógico que también funcionen diferentes circuitos integrados de conexión en cadena, ya que solo hay un pequeño punto en el tiempo donde hay más de un IC realmente involucrado en la comunicación. Y en ese punto, el protocolo no tiene nada que ver con el dispositivo específico, solo es cuestión de un pulso de reinicio.

Además, la imagen aquí deja bastante claro que el protocolo 1 Wire permite encadenar diferentes dispositivos :

    
respondido por el Manishearth

Lea otras preguntas en las etiquetas