Eu preciso conectar três dispositivos BMP280 (pressão atmosférica) com um Arduino Uno (com LCD 16x2).

Eu conectei o Uno no LCD via IIC (módulo LCM1602), nos pinos A4 e A5; está Ok.

Eu conectei os três BMP280 ao Arduino via SPI, como demonstrado no esquema visto abaixo:
Arduino pino. . . . . .BMP280 (1). . BMP280 (2). . BMP280 (3)
D13 (SCLK). . . . . . .SCL. . . . . . . . . SCL. . . . . . . . . SCL
D12 (MISO). . . . . . .SDO. . . . . . . . .SDO. . . . . . . . . SDO
D11 (MOSI). . . . . . .SDA. . . . . . . . .SDA. . . . . . . . . SDA
D10 (ss1). . . . . . . . CSB
D9 (ss2). . . . . . .. . . . . . .. . . . . . .. CSB
D8 (ss3). . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . . .CSB

Isto parece congruente com a teoria da comunicação SPI.

Agora a dificuldade é encontrar a biblioteca que permita múltiplos dispositivos conectados via SPI para:
1. Uno recebe dados de BMP280 (1), apresenta no LCD;
2. Uno recebe dados de BMP280 (2), apresenta no LCD;
3. Uno recebe dados de BMP280 (3), apresenta no LCD;

As três bibliotecas BMP280 encontradas são fracamente documentadas e não demonstram terem recursos para múltiplos dispositivos:
- Adafruit_BMP280_Library
- BMP280_DEV
- BMP280_Grove

Eu tentei alternar:
- digitalWrite(ss1, LOW) and digitalWrite(ss1, HIGH)
- digitalWrite(ss2, LOW) and digitalWrite(ss2, HIGH)
- digitalWrite(ss3, LOW) and digitalWrite(ss3, HIGH)
e criar instancias diferentes para BMP(1), BMP(2) e BMP(3) mas não funcionou.

Existe farta demonstração na WEB de como conectar um sensor BMP280 ao Uno (ou ESP) mas eu não encontrei um que conectasse dois ou mais BMP280 via SPI ou IIC (I2C). Nos foruns, muita especulação mas nada de concreto.

Alguma sugestão?

Exibições: 945

As respostas para este tópico estão encerradas.

Respostas a este tópico

Boa noite, 

Cuidado ! Esse módulo trabalha com 3,3 Volts. A tensão máxima de alimentação deve ser 3,6V.

Se conectou o pino VCC no 5V, pode ter queimado os módulos. 

https://www.bosch-sensortec.com/products/environmental-sensors/pres...

Segundo a especificação da Bosch, os pinos não devem trabalhar com 5V. Por isso recomendo a conversão de tensão de 3,3V para 5V nos pinos, se for usar um Arduino Uno. 

Recomendo a Biblioteca da Adafruit, que usa a interface SPI:

https://github.com/adafruit/Adafruit_BMP280_Library

Através da configuração do pino CSB, você consegue endereçar o módulo:

exemplo: 

#define BMP_CS1 (10)

#define BMP_CS2 (9)

#define BMP_CS3 (8)

Esse modulo abaixo é diferente - tem regulador de tensão: 

https://www.bluedot.space/tutorials/connect-multiple-bme280-on-spi/

Olá.

Não é o BME280.

É o BMP280 que tem maior precisão de pressão.

Para o BME280 existem vários exemplos.

Já tentou endereçar o pino CSB no BMP280 com as bibliotecas existentes? Como?

Segue a foto do dispositivo funcionando, com um sensor BMP280, sem problema:

Sérgio bom dia, 

Viu na foto que o módulo esta sendo alimentado com um regulador de 3,3V ?

O cara conectou diretamente os pinos do módulo no Arduino. 

No seu módulo, todos os  pinos da interface tem resistores de pullup de 10K ohms. 

Conectar esse pinos diretamente no Arduino, envolve riscos. Fica a seu critério, mas esta fora das especificações do sensor. 

Eu enviei o link de como usar vários módulos. Você leu ? 

A carência de documentação destes módulos e bibliotecas me proporcionam o desconforto de estar "brincando" com estes dispositivos. Parece faltar seriedade.

Tem o integrado BMP280, da Bosch (com seu datasheet), e tem os módulos feitos com o BMP280, de origens diversas dentre elas a Adafruit (o módulo da foto não é Adafruit). A Adafruit sequer se preocupa em divulgar as keywords, o mínimo necessário para que possamos "suspeitar" sobre as funções e métodos da biblioteca. É preciso "fuçar" na biblioteca pra tentar conhecer suas possibilidades.

E o datasheet do módulo Adafruit BMP280, é o datasheet da Bosch. Fazer o quê!

O pin-out do BMP280 não é "exatamente" o mesmo pin-out do módulo BMP280, portanto, não sei como o módulo resolve a conversão de 5V para 3.3V nos pinos CLK, SDA e SDO. Não poderei auxiliar nessa resposta mas vi o módulo sendo usado assim. Tá certo, tá errado? Parece difícil saber mas já dá uma pista de parte da solução do meu problema. Então consigo mais um degrau.

Como eu disse, parece faltar seriedade dos fabricantes destes módulos para o mercado IoT.

Certamente, "A questão da precisão é do módulo e não da biblioteca."; nem eu disse que era.

Sérgio, discordo totalmente de você.

A Adafruit é uma empresa muito séria, se você não a conhece. Seu módulo não é da Adafruit como já percebeu. A Adafruit desenvolveu e desenvolve centenas de bibliotecas que todos usufruem sem pagar um centavo. E todo material desenvolvido pela empresa é de excelente qualidade.Sou muito grato à Adafruit. 

O seu módulo é feito por empresas chinesas que clonam tudo e não se preocupam com as informações sobre os mesmos. Ás vezes até traduzem incorretamente para a língua inglesa. 

Mesmo assim acho que temos que ficar satisfeitos com as empresas chinesas. Sem elas,provavelmente nem teríamos acesso à esses tipos de módulos, devido ao preço. Eles conseguem fabricá-los com preços incompreensivelmente tão baixos e acessíveis a nós.

O "meu" módulo foi conectado, um a um, e todos os três estão funcionando, continuam funcionando normalmente.

Acredito que você tenha lido o datasheet da Bosch e, sem estar suficientemente informado respondeu neste tópico sugerindo terem sido danificados devido a forma como foram conectados.

Depois descobriu que não havia problema algum conectá-los nas portas com 5V e, se estou entendendo, parece sugerir agora que só os da Adafruit tem o conversor de 5 para 3.3V?

Não estou entendendo onde você quer chegar. Os três módulos foram conectados no circuito, primeiro um deles para uma simples leitura de pressão e depois os três para leituras múltiplas de pressão. Em nenhum momento eles foram danificados devido a esta montagem, portanto só posso supor que sua conclusão é devido à precipitação em responder ao tópico.

Bom dia caro amigo Rui. 

Como eu disse no tópico anterior, o módulo que o Sergio expôs a foto não tem regulador de tensão e nem conversores de tensão. 

E o módulo da Adafruit tem regulador de tensão e conversores de tensão dos pinos. Importante destacar isso, para quem não conhece esse tipo de módulo. 

https://learn.adafruit.com/assets/26865

Seria interessante também mostrar o esquemático do módulo BMP280 chinês.

"Cuidado ! Esse módulo trabalha com 3,3 Volts. A tensão máxima de alimentação deve ser 3,6V."

"Segundo a especificação da Bosch, os pinos não devem trabalhar com 5V. Por isso recomendo a conversão de tensão de 3,3V para 5V nos pinos, se for usar um Arduino Uno."

Agradeço.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço