

The Adafruit MAX44009 Lux Light Sensor (Part ID: 6498) is a highly sensitive digital light sensor designed to measure ambient light levels in lux. It provides precise and reliable readings, making it ideal for applications such as automatic lighting control, energy-efficient designs, and environmental monitoring. The sensor is compact, low-power, and communicates via the I²C interface, making it easy to integrate into a wide range of projects.








The Adafruit MAX44009 is designed for precision and ease of use. Below are its key technical details:
| Parameter | Value |
|---|---|
| Operating Voltage | 1.7V to 3.6V |
| Communication Interface | I²C |
| Lux Measurement Range | 0.045 lux to 188,000 lux |
| Operating Temperature | -40°C to +85°C |
| Power Consumption | 1 µA (typical) |
| Addressable I²C Address | 0x4A (default) or 0x4B (optional) |
The MAX44009 sensor module has the following pinout:
| Pin | Name | Description |
|---|---|---|
| 1 | VIN | Power supply input (1.7V to 3.6V) |
| 2 | GND | Ground connection |
| 3 | SDA | I²C data line |
| 4 | SCL | I²C clock line |
| 5 | ADDR | I²C address selection (connect to GND or VCC) |
| 6 | INT | Interrupt output (optional, for threshold alerts) |
To use the MAX44009 with an Arduino UNO, follow these steps:
Below is an example Arduino sketch to read lux values from the MAX44009 sensor using the Adafruit MAX44009 library:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_MAX44009.h>
// Create an instance of the MAX44009 sensor
Adafruit_MAX44009 luxSensor = Adafruit_MAX44009();
void setup() {
Serial.begin(9600); // Initialize serial communication at 9600 baud
while (!Serial) {
delay(10); // Wait for the serial monitor to open
}
// Initialize the MAX44009 sensor
if (!luxSensor.begin()) {
Serial.println("Failed to find MAX44009 sensor! Check wiring.");
while (1) {
delay(10); // Halt execution if sensor is not detected
}
}
Serial.println("MAX44009 sensor initialized successfully!");
}
void loop() {
// Read the ambient light level in lux
float lux = luxSensor.getLux();
// Print the lux value to the serial monitor
Serial.print("Ambient Light Level: ");
Serial.print(lux);
Serial.println(" lux");
delay(1000); // Wait 1 second before taking the next reading
}
Sensor Not Detected
Incorrect Lux Readings
Arduino Freezes or Crashes
Q: Can the MAX44009 measure light levels in complete darkness?
A: The sensor has a minimum detection limit of 0.045 lux, so it cannot measure absolute darkness but is highly sensitive to low light levels.
Q: Can I use the MAX44009 with a 5V microcontroller?
A: Yes, but you must use a logic level shifter to step down the I²C signals to 3.3V to avoid damaging the sensor.
Q: How do I change the I²C address of the sensor?
A: Connect the ADDR pin to GND for the default address (0x4A) or to VCC for the alternate address (0x4B).
By following this documentation, you can effectively integrate the Adafruit MAX44009 Lux Light Sensor into your projects for precise ambient light measurement.