

The AS7265x is a multi-channel spectral sensor designed to capture light in the visible spectrum and provide digital output for color and spectral analysis. This sensor is part of a family of advanced spectral sensing devices, offering high precision and flexibility for a wide range of applications. The AS7265x integrates three sensors (AS72651, AS72652, and AS72653) to cover 18 individual spectral channels, making it ideal for applications requiring detailed spectral data.








The AS7265x is a highly capable spectral sensor with the following key specifications:
| Parameter | Value |
|---|---|
| Spectral Channels | 18 (410 nm to 940 nm, 20 nm resolution) |
| Communication Interface | I²C and UART |
| Supply Voltage | 2.7V to 3.6V |
| Operating Current | ~20 mA (active mode) |
| Standby Current | ~2 µA |
| Operating Temperature | -40°C to +85°C |
| Package | LGA-28 (AS72651), LGA-20 (AS72652/AS72653) |
The AS7265x module typically includes three interconnected sensors. Below is the pin configuration for the primary sensor (AS72651):
| Pin | Name | Description |
|---|---|---|
| 1 | VDD | Power supply (2.7V to 3.6V) |
| 2 | GND | Ground |
| 3 | SCL | I²C clock line |
| 4 | SDA | I²C data line |
| 5 | TX | UART transmit |
| 6 | RX | UART receive |
| 7 | INT | Interrupt output |
| 8 | GPIO1 | General-purpose I/O |
| 9 | GPIO2 | General-purpose I/O |
| 10 | LED_CTRL | LED control output |
For the secondary sensors (AS72652 and AS72653), the pinout is similar but excludes I²C and UART pins, as they communicate internally with the primary sensor.
Below is an example of how to interface the AS7265x with an Arduino UNO using I²C communication:
#include <Wire.h>
// AS7265x I2C address
#define AS7265X_I2C_ADDR 0x49
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Initialize serial communication for debugging
// Configure the AS7265x
configureAS7265x();
}
void loop() {
// Read spectral data
uint8_t spectralData[18];
readSpectralData(spectralData);
// Print spectral data to the serial monitor
Serial.println("Spectral Data:");
for (int i = 0; i < 18; i++) {
Serial.print("Channel ");
Serial.print(i + 1);
Serial.print(": ");
Serial.println(spectralData[i]);
}
delay(1000); // Wait 1 second before the next reading
}
void configureAS7265x() {
// Example configuration: Set integration time and gain
Wire.beginTransmission(AS7265X_I2C_ADDR);
Wire.write(0x04); // Integration time register
Wire.write(0xFF); // Maximum integration time
Wire.endTransmission();
Wire.beginTransmission(AS7265X_I2C_ADDR);
Wire.write(0x05); // Gain register
Wire.write(0x03); // Maximum gain
Wire.endTransmission();
}
void readSpectralData(uint8_t *data) {
Wire.beginTransmission(AS7265X_I2C_ADDR);
Wire.write(0x08); // Data register
Wire.endTransmission();
Wire.requestFrom(AS7265X_I2C_ADDR, 18); // Request 18 bytes of data
for (int i = 0; i < 18; i++) {
if (Wire.available()) {
data[i] = Wire.read();
}
}
}
No Communication with the Sensor
Inaccurate Spectral Readings
Ambient Light Interference
Sensor Not Responding
Q: Can the AS7265x measure UV or IR light?
A: The AS7265x primarily measures visible light (410 nm to 940 nm). For UV or IR measurements, consider other sensors in the AS72xx family.
Q: How do I increase the accuracy of measurements?
A: Use proper calibration, minimize ambient light interference, and optimize integration time and gain settings.
Q: Can I use the AS7265x with a 5V microcontroller?
A: Yes, but you must use a level shifter to convert the 5V logic levels to 3.3V for I²C or UART communication.
Q: What is the maximum I²C speed supported?
A: The AS7265x supports I²C speeds up to 400 kHz (Fast Mode).