TLS2591 is high sensitive light to digital converter that transform light intensity into digital signal output that has integrated i2C interface on chip. The TLS2591 combines one infrared-responding photodiode on a single CMOS integrated circuit that has two integrating ADC that convert the photodiode currents into digital output that represents the irradiance measured on each channel. The digital output can be input to a microcontroller / microprocessor where illuminance (Ambient Light Level) in LUX is derived using an empirical formula to approximate the human eye response. TSL2591 supports a traditional level style interrupt that remains asserted until the firmware clears it.

TLS2591 Block Diagram

TLS2591 also support an INT (Interrupt) that simplifies and improves system efficiency by eliminating the need to poll a sensor for the value of light intensity. The interrupt purpose is to detect a meaningful change in light intensity. The concept of a meaningful change can be defined by the user both in terms of light intensity and time, or persistence of the changes in intensity. This device has also define two sets of threshold both above and below the current light level. The interrupt is generated when the value of conversion exceeds. 1 set of threshold can be change to trigger an interrupt only when the ambient light exceeds them for a specific about of time while the other set can be change to trigger an immediate interrupt. For more detail about TLS2591 please refer to the Datasheet.

Required Components

  • Arduino Microcontroller , Teensy MCU (TeensyDuino Integrated), ESP8266 (ESP8266 Arduino IDE Integration), AVR, STM32
  • TLS 2591 IC / TLS2591 Module
  • Solder Less Bread Board
  • Jumper Wire

Wiring Diagram

Schematics Diagram

Source Code


  • Download TLS2591 Datasheet | PDF
  • Download TLS2591 Code Library | Zip
Wiring the TLS2591 High Range LUX / LIGHT Intensity / Ambient Light Sensor on Microcontroller
Tagged on:                     


Leave a Reply

Your email address will not be published. Required fields are marked *