Este repositório contém um código teste para o sensor de luminosidade I2C BH1750, desenvolvido para ser utilizado na BITDOGLAB.
O projeto destaca-se pela sua arquitetura modular, onde o driver do sensor (bh1750.c e bh1750.h) é completamente separado da aplicação principal (main.c). Essa abordagem facilita a reutilização do driver em projetos maiores e mais complexos.
- Leitura de Luminosidade: Coleta dados de intensidade da luz e os exibe em Lux.
- Driver Modular: A lógica de comunicação com o sensor BH1750 é encapsulada em seus próprios arquivos, fornecendo uma API limpa e reutilizável.
- Configuração Flexível: Permite alternar facilmente entre os barramentos I2C 0 e I2C 1 da placa através de uma simples alteração no
main.c. - Teste de Presença: O programa verifica se o sensor está presente no barramento antes de iniciar as leituras, evitando erros.
- Saída Serial: Exibe os dados lidos de forma clara e contínua no monitor serial.
- Placa com Raspberry Pi Pico (neste projeto, foi usada a BitDogLab)
- Sensor de Luminosidade I2C BH1750
- Raspberry Pi Pico C/C++ SDK
- Ambiente de compilação C/C++ (GCC para ARM, CMake)
- Um programa para monitor serial (ex: o integrado no VS Code, PuTTY, etc.)
- Por padrão, o projeto está configurado para usar o conector I2C 1 (Esquerda) da BitDogLab.
- Para trocar para o conector I2C 0 (Direita), edite o arquivo main.c
- Comente o bloco de configuração do I2C 1.
- Descomente o bloco de configuração do I2C 0.
// --- Configuração da Porta I2C 1 da BitDogLab (Comentado) ---
// #define I2C_PORT i2c1
// const uint I2C_SDA_PIN = 2;
// const uint I2C_SCL_PIN = 3;
// --- Configuração da Porta I2C 0 da BitDogLab (Ativo) ---
#define I2C_PORT i2c0
const uint I2C_SDA_PIN = 0;
const uint I2C_SCL_PIN = 1;- Conecte o sensor BH1750 na porta I2C configurada.
- Abra um monitor serial conectado à porta COM do seu Pico.
- Você verá a seguinte saída, atualizada a cada segundo:
--- Teste do Sensor de Luminosidade BH1750 ---
Usando a porta I2C com SDA no pino 2 e SCL no pino 3
Sensor inicializado. Coletando dados...
Intensidade da Luz: 152.50 lux
Intensidade da Luz: 153.33 lux- main.c: A aplicação principal. Faz a inicialização do hardware e do sensor, e realiza as leituras em loop.
- bh1750.c: A implementação do driver do sensor, contendo toda a lógica de comunicação I2C.
- bh1750.h: O arquivo de cabeçalho (a interface ou API) para o driver do BH1750.
- CMakeLists.txt: O arquivo de build do projeto.
✍️ Autor
Antonio Sergio Castro de Carvalho Junior