This is the BH1750 16-bit Ambient Light Sensor from Rohm. Because of how important it is to humans and most other living things, sensing the amount of light in an environment is a common place to get started when learning to work with microcontrollers and sensors. Should we turn up the brightness of our display or dim it to save power? Which direction should your robot move to stay in an area with the most light? Is it day or night? All of these questions can be answered with the help of the BH1750. It's a small, capable and inexpensive light sensor that you can include in your next project to add the detection and measurement of light.
The BH1750 provides 16-bit light measurements in lux, the SI unit for measuring light, making it easy to compare against other values like references and measurements from other sensors. The BH1750 can measure from 0 to 65K+ lux, but with some calibration and advanced adjustment of the measurement time, it can even be convinced to measure as much as 100,000 lux!
Sensors tend to come in small packages and the BH1750 is no different. Not much bigger than a grain of rice, this handy light-sensing friend needs some help to be used by folks experimenting and without the desire or tools to work with surface mount parts. We're here to help!
Packaged on a PCB in our STEMMA QT form factor, the BH1750 comes integrated with a voltage regulator and level shifting circuitry to allow it to be used with 3.3V devices, like a Feather M4 or Raspberry Pi, or 5V devices, such as an Arduino. Rather than working with the itty bitty little contacts on the sensor, the PCB it's packaged on breaks out all the pins to a standard 0.1" / 2.54mm pitch header.
To make things easier and a bit more flexible, we've also included SparkFun qwiic compatible STEMMA QT connectors for the I2C bus so you don't even need to solder! Just plug in a compatible cable and attach it to your MCU of choice, and you’re ready to load up some software and measure some light.
To help with the software part we’ve written a library that you can use with CircuitPython compatible devices as well as computers like the Raspberry Pi by installing it using PyPi. You can even use it on a full-sized computer by using an MCP2221 breakout. Arduino users can use the well-crafted hp_BH1750 library by Stefan Armborst and our installation instructions and wiring diagrams.
- Power Pins
- VIN - this is the power pin. Since the sensor chip uses 3 VDC, we have included a voltage regulator on board that will take 3-5VDC and safely convert it down. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V microcontroller like Arduino, use 5V
- 3Vo - this is the 3.3V output from the voltage regulator, you can grab up to 100mA from this if you like
- GND - common ground for power and logic
- I2C Logic Pins
- SCL - I2C clock pin, connect to your microcontroller I2C clock line. This pin is level shifted so you can use 3-5V logic, and there's a 10K pullup on this pin.
- SDA - I2C data pin, connect to your microcontroller I2C data line. This pin is level shifted so you can use 3-5V logic, and there's a 10K pullup on this pin.
- STEMMA QT - These connectors allow you to connectors to dev boards with STEMMA QT connectors or to other things
- ADDR/AD0 Jumper - I2C Address pin. Pulling this pin high or bridging the solder jumper on the back will change the I2C address from 0x23 to 0x5C
- Features the BH1750 16-bit ambient light sensor
- Communicates via I2C
- Comes with SparkFun Qwiic compatible STEMMA QT JST SH connectors
- 25.3mm x 17.7mm x 4.5mm / 1.0" x 0.7" x 0.2"
- 1 x Adafruit BH1750 Light Sensor - STEMMA QT / Qwiic
- 1 x Header pin
- Adafruit BH1750 Ambient Light Sensor overview
- BH1750 Datasheet
- EagleCAD files on GitHub
- Fritzing object in the Adafruit Fritzing Library