Índice:
- Etapa 1: Alguns Comandos de Shell
- Etapa 2: Caso um: os dispositivos I2c têm o mesmo endereço
- Etapa 3: Caso 2: Endereços I2c diferentes
Vídeo: Raspberry PI Multiple I2C Devices: 3 Passos
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Frustrado porque você não pode usar múltiplos dos mesmos dispositivos I2C em seu projeto. Não há necessidade de usar multiplexadores lentos. O kernel raspbian mais recente suporta a criação de vários barramentos I2C usando pinos GPIO. Esta solução é super rápida.
Etapa 1: Alguns Comandos de Shell
Conecte um de seus dispositivos i2c enquanto seu raspberry pi está desligado, inicie seu raspberry pi e execute
sudo i2cdetect -y 1
Você verá uma tabela como na figura do anexo. Anexei um sensor de temperatura e pressão barométrica BMP280. O endereço i2c é 0x76 de acordo com a tabela. Observe este endereço.
Faça isso para todos os seus dispositivos i2c.
Etapa 2: Caso um: os dispositivos I2c têm o mesmo endereço
Esse sempre foi o caso problemático. Um barramento i2c pode lidar com vários dispositivos, mas eles devem ter endereços i2c diferentes. Alguns dispositivos i2c têm jumpers para definir outros endereços i2c, mas muitos não. Nesse caso, você pode usar um multiplexador i2c (hardware) para girar o SDA i2c (dados) e SCL (relógio) ou pode criar um barramento i2c adicional ou mais.
Vou criar dois ônibus adicionais, ônibus nl 3 e 4
Abra o cli e execute
cd / boot
sudo nano config.txt
Adicione a seguinte linha de código, de preferência na seção em que spi e i2c estão ativados.
dtoverlay = i2c-gpio, bus = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Esta linha criará um barramento i2c adicional (barramento 4) no GPIO 23 como SDA e GPIO 24 como SCL (GPIO 23 e 24 é o padrão)
Adicione também a seguinte linha para criar o barramento i2c 3
dtoverlay = i2c-gpio, bus = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 será o SDA e GPIO 27 será o SCL para o barramento 4 i2c.
Toque no controle X para sair.
Nota sobre a numeração e ordem do ônibus:
Nunca use os barramentos 0 e 2, ele é usado para outras coisas no tabuleiro, como eprom em chapéus, etc.
Para o lançamento de framboesa de abril de 2019:
Você deve sempre começar com o barramento mais alto (barramento 4, neste caso) em seu config.txt e prosseguir até o barramento mais baixo (barramento 3).
O ônibus mais baixo deve ser sempre o ônibus 3
Se você precisar de 5 ônibus extras, os ônibus devem bi na ordem de 7, 6, 5, 4, 3
Este problema no pedido de ônibus não estava lá quando este Instructable foi originalmente escrito. Parece que mudanças foram feitas no kernel.
Desligue seu PI, desligue-o. Conecte seus dispositivos i2c ao barramento 4 (SDA para GPIO 23 e SCL para GPIO 24) e o outro ao barramento i2c 3 (SDA para GPIO 17 e SCL para GPIO 27).
Ligue o pi.
Corre:
sudo i2cdetect -l (minúsculas L)
Você verá agora que os barramentos i2c 3 e 4 também estão listados. Também execute:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Agora você pode usar seu sensor em sua linguagem de programação. Lembre-se de especificar os barramentos i2c corretos.
Attach é um exemplo do popular sensor de temperatura e pressão BMP280. Nenhum multiplexador pode ler 2 BMP280s tão rápido.
Um exemplo de 2 sensores Sensirion SDP 810 também é anexado. Mais uma vez trabalhando muito mais rápido do que o multiplexador que usei no passado
Criei o código python para ler dois novos BMP388s da adafruit.
Também posso adicionar outros sensores no futuro a
Etapa 3: Caso 2: Endereços I2c diferentes
Simples. i2c é um ônibus. A finalidade do barramento é se comunicar com vários dispositivos. Conecte os dispositivos em paralelo ao mesmo barramento i2c. Você pode usar o ônibus um.
Corre:
sudo i2cdetect -y 1
Você verá os dispositivos listados.
Recomendado:
Visor LCD I2C / IIC - Use um LCD SPI para o visor LCD I2C Usando o módulo SPI para IIC com Arduino: 5 etapas
Visor LCD I2C / IIC | Use um LCD SPI para o Display LCD I2C Usando o Módulo SPI para IIC com Arduino: Oi pessoal, já que um LCD SPI 1602 normal tem muitos fios para conectar, então é muito difícil fazer a interface com o arduino, mas há um módulo disponível no mercado que pode converter a exibição SPI em exibição IIC, então você precisa conectar apenas 4 fios
Instalando o Raspbian no Raspberry Pi 3 B sem HDMI - Primeiros passos com Raspberry Pi 3B - Configurando o Raspberry Pi 3: 6 etapas
Instalando o Raspbian no Raspberry Pi 3 B sem HDMI | Primeiros passos com Raspberry Pi 3B | Configurando o Raspberry Pi 3: Como alguns de vocês sabem, os computadores Raspberry Pi são incríveis e você pode obter o computador inteiro apenas em uma única placa minúscula. O Raspberry Pi 3 Modelo B possui um ARM Cortex A53 quad-core de 64 bits com clock de 1,2 GHz. Isso coloca o Pi 3 em cerca de 50
Visor LCD I2C / IIC - Converter um SPI LCD para o display I2C LCD: 5 etapas
Visor LCD I2C / IIC | Converter um LCD SPI para o display LCD I2C: usar o display LCD spi precisa de muitas conexões para fazer, o que é realmente difícil de fazer, então encontrei um módulo que pode converter o LCD i2c para o LCD spi, então vamos começar
Adaptador LCD I2c de caracteres (exemplo de conexão I2c): 12 etapas (com imagens)
Adaptador I2c de LCD de caracteres (exemplo de conexão I2c): Estou fazendo um esquema de conexão para um adaptador i2c de exibição de caracteres. Verifique as atualizações em meu site. Agora adiciono também um esquema de conexão de fiação para usar a biblioteca original, não minha biblioteca bifurcada. para as telas de LCD de caracteres, proje
Multiple Guitar Rack and Roll !: 5 etapas
Multiple Guitar Rack and Roll !: Este instrutível é para um suporte de guitarra / suporte múltiplo de 6 com rolos. Como fazer seu próprio suporte / suporte de guitarra múltiplo com materiais que estão espalhados em seu quintal. Bem, pelo menos eu tenho tanto lixo no meu quintal que provavelmente poderia fazer um M