Autor Tema: Múltiples sensores i2c  (Leído 3146 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado iNoXSteeL

  • PIC12
  • **
  • Mensajes: 75
    • La web de InoX
Múltiples sensores i2c
« en: 14 de Marzo de 2010, 11:42:01 »
Hola a todos,

No sé si se podrá hacer lo que quiero, mi idea es implementar varios sensores SHT75, de modo que pueda leer humedad y temperatura de varias zonas, mostrarlos en pantalla, ajustar tal y cual..., pero no he encontrado nada al respecto.

He mirado el datasheet a ver si podía darle una ID a cada sensor, pero no parece que lo tenga.

¿Alguien ha hecho algo parecido o sabe cómo se hace?

Gracias de antemano, un saludo.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Múltiples sensores i2c
« Respuesta #1 en: 14 de Marzo de 2010, 11:56:33 »
He mirado el datasheet y veo que intenta "emular" un bus i2c pero realmente no lo hace, así que creo que si quieres poner varios sensores tendrás que ponerlo en diferentes hilos (I/O del micro).

Un saludete.

Desconectado alexysar

  • PIC16
  • ***
  • Mensajes: 206
    • e-Kit
Re: Múltiples sensores i2c
« Respuesta #2 en: 14 de Marzo de 2010, 12:21:48 »
Tenes otra opción que es emplear el sensor de temperatura ds18b20, con el cual se pueden conectar varios sensores de temperatura a un bus de un hilo (one Wire). De esta forma con una sola patita del micro podes usar varios sensores de temperatura distribuidos en distintos lugares.

Desconectado iNoXSteeL

  • PIC12
  • **
  • Mensajes: 75
    • La web de InoX
Re: Múltiples sensores i2c
« Respuesta #3 en: 14 de Marzo de 2010, 15:05:10 »
Gracias por las respuestas,

alexysar, no me serviría ese sensor, ya que sólo mide temperatura y necesito también humedad, por ello el SHT75.

c4_esp_VR , modificando la libreria para cada sensor valdría?

Un saludo.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Múltiples sensores i2c
« Respuesta #4 en: 14 de Marzo de 2010, 15:18:47 »
Me he fijado en la librería y no he visto que te de opciones de cambiar el address...por lo que dudo que puedas poner varios sensores por el mismo bus de datos. Para asegurarte yo dejaría un correo a la empresa.

Un saludete.

Desconectado iNoXSteeL

  • PIC12
  • **
  • Mensajes: 75
    • La web de InoX
Re: Múltiples sensores i2c
« Respuesta #5 en: 14 de Marzo de 2010, 15:23:14 »
Había pensado que usando diferentes puertos, antes de la lectura cambiar el puerto, leer sensor, mostrar, y así con cada uno.. es lo único que se me ocurre.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Múltiples sensores i2c
« Respuesta #6 en: 14 de Marzo de 2010, 15:30:44 »
Hola, podrías conectar todos los sensores a las líneas I2C pero sólo encender el sensor que quieres leer.

Con un arreglo de transistores multiplexados podrías encender un sensor a la vez. Sólo haría falta un demux o algo por el estilo.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Múltiples sensores i2c
« Respuesta #7 en: 14 de Marzo de 2010, 15:37:33 »
Citar
Había pensado que usando diferentes puertos, antes de la lectura cambiar el puerto, leer sensor, mostrar, y así con cada uno.. es lo único que se me ocurre.

Si vas a usar varios puertos, creo que cabría la posibilidad de que uses el mismo clk para todos (si son unos pocos ya que un pic en su salida entrega como mucho 20mA) y si pones muchos no va a llegar la sufiente chicha a los sensores para que funcionen.

Si quieres usar 2 pines I/O para cada sensor entonces en la libería tendrías que crear nuevos defines...

Código: [Seleccionar]
#define DATA_1  P1_1
#define SCK _1   P1_0

#define DATA_2  P1_3
#define SCK_2    P1_2

#define DATA_3  P1_5
#define SCK_3    P1_4

Luego en algunas de las funciones añadirle como parámetro de entrada el sensor que quieres leer...aquí ya entreríamos en programación mas que en hardware...de que manera podrías hacer esto...pues o a lo fácil pero con muchas líneas de código que es con switch case o if o ingeniandotelas con un array de chars o algo por el estilo.

Citar
Hola, podrías conectar todos los sensores a las líneas I2C pero sólo encender el sensor que quieres leer.

Con un arreglo de transistores multiplexados podrías encender un sensor a la vez. Sólo haría falta un demux o algo por el estilo.
Lo de migsantiago es una buena opción...simplemente tendrías que poner un transistor a cada sensor para que actúe como interruptor y darte chicha a aquellos que quieres que se enciendan controlando con el pic la base de estos.

Un saludete.

Desconectado iNoXSteeL

  • PIC12
  • **
  • Mensajes: 75
    • La web de InoX
Re: Múltiples sensores i2c
« Respuesta #8 en: 14 de Marzo de 2010, 15:46:27 »
Gracias por las aclaraciones,

c4_esp_VR , lo de usar el mismo clk se me había ocurrido, pero no estaba seguro lo iba a probar ahora en el proteus. En total serán 4 o 6 sensores, veremos como responde.

La idea de migsantiago me parece estupenda, tengo que ver cuantos pin usa el demux, quizá para 4 sensores la idea anterior será suficiente, pero si pongo más veo una buena opción.

A ver como lo soluciono.

Gracias nuevamente, un saludo.