terça-feira, maio 24, 2022

Sensor de Pressão e Temperatura BMP280

Já faz algum tempo que não falo em sensores, então vamos dar uma olhada no BMP280. Já vimos aqui os seus antecessores, o BMP180 e o BMP085. Enquanto que estes dois eram compatíveis entre si (do ponto de software), o BMP280 traz novidades.

Da esquerda para a direita: BMP085, BMP180, BMP280


Vamos olhar primeiro a parte de hardware, destacando as diferenças do BMP280. Os três modelos trabalham com 1,8 ou 3,3V, com o BMP280 tendo uma tensão mínima de operação ligeiramente menor. Os módulos com o BMP085 costumavam ter um regulador para permitir alimentar com 5V, os módulos com BMP180 e BMP280 que eu tenho visto não tem isso, exigindo alimentação a 3,3V (ou menos).

A grande novidade no BMP280 é o suporte a SPI (com 3 ou 4 fios). Ele possui quatro pinos com funções associadas à comunicação: SDI, SDO, SCK e CSB. Para operar em SPI tradicional ("4 fios") estes pinos são ligados aos sinais MOSI, MISO, SCK e CS. Na operação em SPI "3 fios" o pino SDI funciona como combinação de MOSI e MISO.A operação I2C utiliza somente SDI e SCL para comunicação; o sinal SDO seleciona o endereço I2C entre 0x76 (SDO baixo) e 0x77 (SDO alto). 

A seleção do modo de comunicação é feito pelo sinal CSB. Com este pino fixo em nível alto, a interface I2C é selecionada. Assim que o sinal CSB for colocado em nível baixo, a interface I2C é desativada até o BMP280 ser desligado e ligado novamente. O SPI pode operar com clock de até 10MHz e o I2C com clock de até 3,4MHz.

O módulo que comprei disponibiliza os 4 sinais de comunicação, encontrei à venda módulos configurados para operar somente em I2C, que disponibilizam apenas dois sinais (marcados SCL e SDA).

O BMP280 é menor que o BMP180, mais preciso, tem menor consumo e é mais rápido nas leituras. É possível ler apenas pressão ou temperatura (o BMP180 sempre lê os dois). Existe mais uma opção de oversampling da pressão (leitura múltiplas vezes para maior precisão), de 16 leituras. Foi acrescentada a opção de oversampling da temperatura. Os valores obtidos podem agora passar por um filtro, para minimizar variações temporárias. Além da leitura disparada uma a uma por comando (modo forced) existe agora a opção da leitura periódica (modo normal). As figuras abaixo mostram as diferenças entre o BMP280 e o BMP180 e as sugestões de configurações para diversas situações:

Comparação entre o BMP180 e o BMP280 (fonte: datasheet)

Alguns casos de uso (fonte: datasheet)

Para suportar as novas funções o BMP280 tem mais registradores que os antecessores:

Os registradores do BMP280

No próximo post vamos ver o BMP280 na prática, ligado a um Raspberry Pi Pico.


2 comentários:

Luiz Carlos G. Filho disse...

Utilizava o BMP085 nos meus projetos, mas hoje utilizo o BMP280 ou BME280. Este, além de medir a pressão e temperatura, também medi a umidade do ar. Raramente utilizo o BMP180. A troca de sensores foi exclusivamente por questão de mercado. Os sensores BMP280 e BME280 são fáceis de encontrar. Diferentemente dos BMP085. As lojas que costumo comprar não vende mais este sensor.

Em meus projetos utilizo o ARM STM32F103F8T6, mas estou ansioso para vê o sensor BMP280 funcionando com o Raspberry Pi Pico. Já tem um tempo que penso em migrar para o Raspberry Pi Pico. Pois ambos estão na mesmo faixa de preço (R$ 50), mas o Pico ganha em performance. Ideal para projetos de controle remoto de RF, como os que eu faço.

Daniel Quadros disse...

Luiz, logo depois que eu comprei o BMP085 fiquei sabendo que tinha sido descontinuado, aí comprei o BMP180. Estou tento problemas misteriosos com os módulos BMP280 que comprei, mas espero em breve publicar a continuação.