Tabla de contenido:
- Paso 1: algunos comandos de concha
- Paso 2: Caso uno: Los dispositivos I2c tienen la misma dirección
- Paso 3: Caso 2: Diferentes direcciones I2c
Video: Dispositivos I2C múltiples Raspberry PI: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Frustrado porque no puede usar múltiples dispositivos I2C en su proyecto. No es necesario utilizar multiplexores lentos. El último kernel raspbian admite la creación de múltiples buses I2C usando pines GPIO. Esta solución es súper rápida.
Paso 1: algunos comandos de concha
Conecte uno de sus dispositivos i2c mientras su raspberry pi está apagada, inicie su raspberry pi y ejecute
sudo i2cdetect -y 1
Verá una tabla como en la figura adjunta. He conectado un sensor de temperatura y presión barométrica BMP280. La dirección i2c es 0x76 según la tabla. Anote esta dirección.
Haga esto para todos sus dispositivos i2c.
Paso 2: Caso uno: Los dispositivos I2c tienen la misma dirección
Este fue siempre el caso problemático. Un bus i2c puede manejar varios dispositivos, pero deben tener diferentes direcciones i2c. Algunos dispositivos i2c tienen puentes para configurar otras direcciones i2c, pero muchos no. En este caso, puede usar un multiplexor i2c (hardware) para rotar el i2c SDA (datos) y SCL (reloj) o puede crear un bus i2c adicional o más.
Crearé dos buses adicionales, nl bus 3 y 4
Abre el cli y corre
cd / arranque
sudo nano config.txt
Agregue la siguiente línea de código, preferiblemente en la sección donde está habilitado spi e i2c.
dtoverlay = i2c-gpio, bus = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Esta línea creará un bus i2c adicional (bus 4) en GPIO 23 como SDA y GPIO 24 como SCL (GPIO 23 y 24 son los predeterminados)
También agregue la siguiente línea para crear el bus i2c 3
dtoverlay = i2c-gpio, bus = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 será el SDA y GPIO 27 será el SCL para el bus 4 i2c.
Toque el control X para salir.
Nota sobre la numeración y el orden de los buses:
Nunca use el bus 0 y 2, se usa para otras cosas en el tablero como eprom en sombreros, etc.
Para el lanzamiento de raspbian de abril de 2019:
Siempre debe comenzar con el bus más alto (Bus 4 en este caso) en su config.txt y continuar hasta el bus más bajo (bus 3).
El bus más bajo siempre debe ser el bus 3
Si necesita 5 autobuses adicionales, los autobuses deben bi en el orden de 7, 6, 5, 4, 3
Este problema en el pedido de autobús no estaba allí cuando se escribió originalmente este Instructable. Parece que se hicieron cambios en el kernel.
Apague su PI, apáguelo. Conecte sus dispositivos i2c al bus 4 (SDA a GPIO 23 y SCL a GPIO 24) y el otro al bus i2c 3 (SDA a GPIO 17 y SCL a GPIO 27).
Enciende el pi.
Correr:
sudo i2cdetect -l (minúscula L)
Ahora verá que los buses i2c 3 y 4 también aparecen en la lista. También ejecuta:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Ahora puede usar su sensor en su lenguaje de programación. Recuerde especificar los buses i2c correctos.
Attach es un ejemplo del popular sensor de temperatura y presión BMP280. Ningún multiplexor puede leer 2 BMP280 tan rápido.
También se adjunta un ejemplo de 2 sensores Sensirion SDP 810. Nuevamente trabajando mucho más rápido que el multiplexor que usé en el pasado.
Creé código Python para leer dos nuevos BMP388 de adafruit.
También puedo agregar otros sensores en el futuro a
Paso 3: Caso 2: Diferentes direcciones I2c
Sencillo. i2c es un autobús. El propósito de un bus es comunicarse con múltiples dispositivos. Conecte los dispositivos en paralelo al mismo bus i2c. Puedes usar el bus uno.
Correr:
sudo i2cdetect -y 1
Verá los dispositivos enumerados.
Recomendado:
Configuración del proveedor de GPS Bluetooth externo para dispositivos Android: 8 pasos
Configuración para proveedor de GPS Bluetooth externo para dispositivos Android: este instructivo le explicará cómo crear su propio GPS externo habilitado para Bluetooth para su teléfono, encienda lo que sea por aproximadamente $ 10. interconectando módulos Blutooth Low Energy Ardui
Arduino conecta varios dispositivos I2C: 6 pasos
Arduino Connect Multiple I2C Devices: En este tutorial aprenderemos cómo conectar varios módulos con una conexión I2C a arduino.Mire el video! En nuestro caso usaremos 4 pantallas OLED como ejemplo, pero puede usar cualquier otro módulo I2C / sensores si lo desea. Nota: 4 pantallas OLED co
Restaurar Game Boy o dispositivos electrónicos similares: 7 pasos (con imágenes)
Restaurar Game Boy o dispositivos electrónicos similares: En primer lugar, ¡gracias por consultar mi tutorial! Eres increíble En segundo lugar, dedico mucho tiempo al video de YouTube, así que míralo también, lo explica todo. Video:
Tutorial: Cómo controla Arduino varios dispositivos con la misma dirección mediante el multiplexor TCA9548A I2C: 3 pasos
Tutorial: Cómo Arduino controla varios dispositivos con la misma dirección mediante el multiplexor TCA9548A I2C: Descripción: El módulo multiplexor TCA9548A I2C permite conectar dispositivos con la misma dirección I2C (hasta 8 con la misma dirección I2C) conectados a un microcontrolador. El multiplexor actúa como un guardián, enviando los comandos al conjunto seleccionado o
Base de carga para múltiples dispositivos Lego, tableta para teléfono: 15 pasos (con imágenes)
Base de carga de múltiples dispositivos Lego, tableta para teléfono: construye tu propia base de carga de Lego