APDS9960 is a sensor that detects six different gestures, detects proximity, senses ambient Light and provides information about the presence of Colors Red, Green, Blue or Clear. It consists of a built-in UV, IR blocking filters, an I2C compatible interface, and four separate photodiodes. Furthermore, it detects gestures by sensing IR light waves reflected from an object and convert this information about distance, velocity, and direction of an object to a digital value. The same reflected IR rays measure the distance between the device and the user. The ALS feature measures red, green, and blue content of light. This article explains in detail about the working, uses, and applications of APDS9960.

APDS9960 Pinout Diagram

This multipurpose APDS9960 sensor breakout board consists of 6 pins. The pin configuration details are given in the next section.

Pin Description

This section contain details and working of each pin of APDS9960.

Pin1 and pin7 are the pins for the I2C interface. SDA is a serial data address terminal and the Serial clock terminal provides clock pulse for transmission of this data.

Pin2 is an active low interrupt pin.

LDR is an LED driver input pin for APDS9960 proximity LED. Connect a constant power source at this pin for LED drivers.

LEDK is the cathode pin of the LED. Connect this pin to LDR if you are using an internal circuit of the led driver.

LEDA is the anode pin of the LED.

Pin6 and 8 are power supply pins. Connect pin 6 to ground. Apply voltage supply in a range of 2.4V to 3.6V at pin 8.

APDS9960 breakout Features

It is a multifunction sensor that provides features of gesture detection, ambient light, and RGB Color Sensing and proximity sensing. Most importantly, it senses ambient Light and red, green, blue colors through UV and IR blocking filters and its gain is adjustable from 1x to 64x.

The proximity sensing provides trimmed IR intensity due to which you don’t need extra components for calibration. The proximity detection system contains adjustment resistors that provide offset compensation, an ambient light rejection which gives accurate and improved results, and a saturation indicator bit.

The circuit for gesture detection includes 32 dataset storage FIFO, Interrupt driven I2C communication, and a programmable driver which provides current to IR LED.It has a fast mode 7-bit I2C compatible interface which provides data rates of up to 400kHz.

Maximum voltage supply required for LED is 4.5V.

Voltage supply range = 2.4 to 3.6V.

Temperature range = -40°C to 85°C

Where to use APDS9960?

APDS9960 is a multifunctional sensor that supports color detection, proximity measurement, and gesture detection through a single module. It can detect up to six gestures which include left, right, up, down, far and near. The range of detection is about 4 to 8 inches.

It has a very high sensitivity which makes it well-suited for operations behind dark glass. You can interface this sensor with Arduino, microcontrollers, etc to perform a variety of functions. You can use this sensor in remote controls for controlling robots and other devices.

APDS9960 Interfacing with Arduino

The hardware is simple and easy to use. The APDS9960 breakout board of the sensor operates on 3.3V due to the presence of an onboard voltage regulator.

APDS9960 consists of four photodiodes that are sensitive to different directions. Whenever an object within a detection range performs any gesture, the object reflects back the IR signal transmitted by the LED. The photodiodes detect that signal and that is how it obtains the information regarding velocity and distance of an object.

Using this information, the sensor detects the type of gesture. The sensor has different channels which detect light red, blue, green, and clear colors through IR and UV blocking filters and a data converter. The configurable interrupt controls the detect function and triggers the sensor to release the Infrared light or detect it.

This circuit diagram shows Interfacing of APDS9960 with Arduino Nano.

To write Program for Arduino with APDS9960 sensor, fortunately, library of this breakout board is available. First of all, go to this link and download Arduino library: