8 votos

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

He utilizado DS18B20 sensores de temperatura muchas veces y entender que se pueden encadenar en el mismo pin de datos. ¿Podrían conectarse dos sensores diferentes de la misma manera?

Por ejemplo, ¿podría utilizar el mismo pin de datos para leer datos tanto de un DS18B20 como de un DS2417 ? ¿Habría alguna limitación en cuanto al hardware o al aspecto del código?

Si se echa 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 algunos tolerancia para diferentes dispositivos, sin embargo el DS18B20 y el DS18S20 son ambos sensores de temperatura y no son tan diferentes

7voto

Eric Puntos 152

Parece que no hay diferencias en el protocolo de los distintos chips, y generalmente los protocolos de un solo cable permiten mezclar y combinar. El protocolo de un solo cable aquí básicamente tiene una forma de ciclar entre los dispositivos. Otros dispositivos ignoran todas las comunicaciones hasta que se envía un determinado pulso, que cambia al siguiente dispositivo. Teniendo esto en cuenta, parece lógico que la conexión en cadena de diferentes circuitos integrados también funcione, ya que sólo hay un pequeño momento en el que hay más de un circuito integrado realmente involucrado en la comunicación. Y en ese momento el protocolo no tiene nada que ver con el dispositivo específico, es sólo una cuestión de un pulso de reinicio.

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

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X