¿Cómo conecto dispositivos que no son I2C a un bus I2C?

Soy bastante nuevo en electrónica y estoy tratando de hacer mi primer sistema basado en Raspberry Pi: un diodo, un sensor de presión y LCD 1602 con protector de teclado (el de una placa Arduino). La forma en que me gustaría conectar todos los dispositivos es usando I2C (el Raspberry Pi no tiene mucho GPIO).

Y aquí viene la pregunta: ¿Cómo puedo conectar dispositivos que no sean I2C al bus I2C? Escuché sobre diferentes expansores, como el MCP23017, ¿eso resolverá el problema?

Depende de lo que requiera el dispositivo no I²C. ¿Puedes ser un poco más específico sobre la interfaz?
por ejemplo, el diodo mencionado anteriormente se encenderá y apagará. Se supone que la pantalla LCD con el escudo del teclado muestra información básica sobre el sistema (como el nombre del usuario recuperado de la raspberry pi) y envía información (la señal para reiniciar el sistema) si se presiona el botón de reinicio en el escudo . El sensor de presión ya está diseñado como un dispositivo I2C.
Si se refería a la forma, cómo se supone que deben conectarse los dispositivos, entonces la pantalla LCD con protector de teclado necesita seis puertos analógicos para extraer la señal de los botones y siete puertos para señales digitales. El diodo solo necesita algún tipo de pin de control para encenderse y apagarse.
@jippie, ¿podría, por favor, decir algunas posibles soluciones al respecto?

Respuestas (1)

Es posible que la pregunta represente un malentendido o una falta de comunicación sobre el tipo de conexión deseada: no es algo que se conecte al bus I2C en sí, sino que se controle a través de algún dispositivo intermediario I2C a GPIO , que además está conectado en el bus I2C.

La idea de que los dispositivos que no son I2C se conecten a un bus I2C no tiene sentido. El protocolo I2C tiene requisitos específicos para que el maestro I2C se dirija al dispositivo esclavo y para comunicar datos en cualquier dirección.

La pantalla LCD mencionada en la pregunta, por ejemplo, funciona en un conjunto diferente de protocolos de comunicación, utilizando múltiples pines GPIO y (según la descripción) lo más probable es que no reconozca I2C. Sin embargo, hay módulos LCD I2C disponibles, que incorporan la funcionalidad de esclavo I2C a bordo, ya sea a través de un controlador LCD o un microcontrolador dedicado con código de comunicación esclavo I2C. En lugar del módulo LCD básico mencionado, se requeriría un módulo de visualización I2C de este tipo para su uso en un bus I2C.

Los expansores de bus I2C no pueden crear mágicamente la funcionalidad I2C en un dispositivo conectado. Sin embargo, lo que pueden hacer los expansores de bus I2C es proporcionar pines GPIO adicionales , que luego se controlan mediante el código de la Raspberry Pi o el microcontrolador a través del expansor, que a su vez responde a los comandos I2C.

Tal vez eso es lo que se desea, en cuyo caso, seguro, funcionará, pero no como se describe: un dispositivo controlado por GPIO, como el módulo LCD o un LED, se puede conectar a los pines GPIO del expansor, y el expansor es el dispositivo. que está conectado al bus I2C.

¡Gracias! Esta respuesta es exactamente lo que esperaba obtener aquí.