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 LCD i2c 2x16 existente.
Tanto el módulo de reloj en tiempo real con interfaz i2c 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 en serie. Esto es posible porque cada dispositivo tiene su propia dirección única.
Mi pregunta es cómo conectar físicamente los dos dispositivos con interfaz i2c en un solo A4 y A5. Gracias.
Respuestas:
Algunas personas están teniendo dificultades para visualizar cosas conectadas entre sí, así que aquí hay una imagen:
(Plantear sugerencias)
simule este circuito : el esquema creado con CircuitLab I2C es un bus, por lo que las señales con nombres similares se conectan entre sí. El esquema de direccionamiento permite al microcontrolador seleccionar con qué dispositivo está hablando. En el Arduino, las resistencias pull-up de 10k pasan a "VDD", que son los pines de 5V o 3.3V.
fuente
Para I2C, si todos los dispositivos esclavos tienen direcciones de dispositivo diferentes, todos los pines SDA deben conectarse entre sí, y todos los pines SCL deben conectarse entre sí. Es tan simple como eso.
Naturalmente, también debe incluir resistencias pull-up en ambas líneas, como se requiere para I2C. Cómo elegir los valores de resistencia se ha discutido aquí antes .
fuente
Conecte dos pines A4-sda a A5-scl (en ambas tarjetas uno-uno) y conecte la resistencia de 5v de cada línea sda-scl correspondiente.
fuente
I2C es un protocolo de transferencia de datos desarrollado por Philips. También se conoce como interfaz de dos cables, ya que utiliza dos cables para la comunicación. Línea de reloj serie SCL. Línea de datos en 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 pull-up 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 desarrollador debe cablear. Esto ayuda a conectar el mismo tipo de dispositivos con diferentes partes de direcciones cableadas en el mismo bus.
fuente
También debe verificar las resistencias pull up. Si usa placas ya hechas, no solo el chip, esas placas generalmente tienen resistencias pull-up a bordo entre los buses y el vcc. Entonces, cuando conecta todo en paralelo, las resistencias también están en paralelo, por lo que la caída del valor total de la resistencia y su comunicación pueden fallar.
fuente