Arduino I2C y múltiples dispositivos

He creado dos proyectos, uno con un Tiny RTC y otro con el sensor BM180 para leer presión barométrica y temperatura. Ahora quiero combinar ambos.

Estoy tratando de conectar ambos: el sensor BM180 y un módulo de reloj TinyRTC a través de. los pines I2C a mi Arduino Uno (r3) y como soy un principiante tengo algunos problemas.

El BM180 funciona con 3.3V, pero el TinyRTC está en 5V. ¿Puedo simplemente conectar todos los SDA juntos y todos los SCL juntos?

Bienvenido a EE.SE. Hay un sitio de Arduino StackExchange que también le gustaría conocer.

Respuestas (2)

El DS1307 utilizado en TinyRTC no está diseñado para funcionar a 3,3 V. Entrará en modo de copia de seguridad, solo manteniendo el tiempo. Pero tiene un voltaje de entrada alto mínimo de 2V. Como I2C es un bus de colector abierto, donde un dispositivo solo baja la línea y luego la libera para que las resistencias pull-up la suban, esto se puede hacer simplemente asegurándose de que los pull-ups estén conectados al voltaje correcto. Dado que el BM180 solo puede funcionar a 3,3 V, eso establece el voltaje i2c requerido.

Alimente el TinyRTC a 5 V y el BM180 a 3,3 V. Simplemente quite o corte los pull-ups i2c en el módulo TinyRTC. Si su BM180 es un módulo con pull-ups a 3.3V, entonces ya está. De lo contrario, use dos resistencias pull-up (4.7k es el promedio) a una fuente de 3.3V. Entonces el resto depende de tu código.

Así que no es tan fácil como pensaba... bueno gracias, intentaré hacer esto. Acabo de ver que también hay otro RTC (DS3231) que puede funcionar con 3,3 V, así que si esto no funciona, tal vez vaya a ver si puedo encontrarlo en alguna parte.

Aquí hay un artículo interesante (documento técnico) para leer, que describe cómo hacerlo usando solo un MOSFET para cada línea I2C y algunas resistencias. enlace a la nota de la aplicación an97055

Consulte el traductor de nivel lógico bidireccional de sparkfun, que es solo una placa de ruptura para este enfoque en 4 E/S (aunque solo necesita dos) enlace al esquema

enlace al producto en sí

Gracias por la respuesta, pero aparentemente esto es un poco complicado para mí (por ahora) :)