¿Cómo conectar varios dispositivos con interfaz i2c en un solo pin A4 (SDA) y A5 (SCL) en Arduino?

28

Quiero agregar un módulo de reloj en tiempo real a mi pequeño proyecto. Quiero mostrar la hora y la fecha en mi módulo i2c 2x16 LCD existente.

Tanto el módulo de reloj en tiempo real i2c-interface como el módulo LCD 2x16 utilizan el mismo pin A4 (SDA) y A5 (SCL) en Arduino Uno. Después de horas de búsqueda en la red, el bus i2c puede tomar muchos dispositivos serie. Esto es posible porque cada dispositivo tiene su propia dirección única.

Mi pregunta es cómo cablear físicamente los dos dispositivos de interfaz i2c en un solo A4 y A5. Gracias.

    
pregunta banksia

4 respuestas

26

Algunas personas tienen dificultades para visualizar cosas conectadas entre sí, así que aquí hay una foto:

(Sugerencia de publicación)

simular este circuito : esquema creado usando CircuitLab I2C es un bus, por lo que las señales con el mismo nombre se conectan entre sí. El esquema de direccionamiento permite al microcontrolador seleccionar con qué dispositivo está hablando. En el Arduino, las resistencias de pull-up de 10k pasan a "VDD", que son las clavijas de 5V o 3.3V.

    
respondido por el gbarry
8

Para I2C, si todos los dispositivos esclavos tienen direcciones de dispositivo diferentes, todos los pines SDA deben estar conectados entre sí, y todos los pines SCL deben estar conectados entre sí. Es tan simple como eso.

Naturalmente, también debe incluir resistencias pull-up en ambas líneas, según lo requerido para I2C. Cómo elegir los valores de resistencia se ha tratado aquí antes .

    
respondido por el The Photon
2

Conecte dos pines A4-sda a A5-scl (en la placa uno-uno) y conecte la resistencia de 5v de cada línea sda-scl correspondiente.

    
respondido por el daedalucian
0

I2C es un protocolo de transferencia de datos desarrollado por Philips. También conocida como interfaz de dos cables, ya que utiliza dos cables para la comunicación. SCL-Serial Clock Line. Línea de datos serie SDL. Por lo tanto, debe conectar los pines correspondientes de los dispositivos i2c, ya sea un eeprom o lcd a los pines SCL y SDL del microcontrolador que está utilizando con una resistencia pullup a VDD. Dado que es un protocolo de direcciones que tiene una dirección de 7 bits para cada dispositivo conectado, puede direccionar hasta 2 ^ 7 dispositivos diferentes. Pero normalmente la dirección I2C de un dispositivo esclavo está predefinida con algunos bits que el programador debe programar. Esto ayuda a conectar el mismo tipo de dispositivos con diferentes partes de direcciones cableadas en el mismo bus.

    
respondido por el Antony Tom Mathews

Lea otras preguntas en las etiquetas