GY9960 Gesture IR-RGB Sensor I2C 3.3V
This is the RGB and Gesture Sensor, a small breakout board with a built in APDS-9960 sensor that offers ambient light and color measuring, proximity detection, and touchless gesture sensing. With this RGB and Gesture Sensor you will be able to control a computer, microcontroller, robot, and more with a simple swipe of your hand.

The APDS-9960 is a serious little piece of hardware with built in UV and IR blocking filters, four separate diodes sensitive to different directions, and an I2C compatible interface. For your convenience the following pins have been broken out: VL (optional power to IR LED), GND (Ground), VCC (power to APDS-9960 sensor), SDA (I2C data), SCL (I2C clock), and INT (interrupt). Each APDS-9960 also has a detection range of 10 -20cm.
Quick Spec
- Model: GY-APDS 9960-3.3
- Chip: APDS-9960
- Power Supply: 3.3V
- Range Detection: 10 - 20cm
- Communication: I2C
- Dimensions: 20 x 15.3mm
- Net Weight: 2g
Schematic
Setting the Jumpers
The front of the module has 2 solder jumpers labeled PS and I2C PU
PS - This jumper connects the power supplies of the sensor and IR LED together. As shipped, the jumper is open so you will need to provide power to both the VCC (2.4 – 3.6V) and VL (3.0 – 4.5V).
I2C PU - This is a 3-way solder jumper used to connect the I2C 10K pull-up resistors to the SDA and SCL circuits. As shipped, this jumper is open.
Pinout
- VL - Power to IR LED. Must be 3.0 – 4.5V
- GND - Ground connects to ground on the MCU
- VCC - Power input. Connects to 3.3V on the MCU (2.4 – 3.6V)
- SDA - I2C Data line. Connects to SDA on MCU
- SCL - I2C Clock line. Connects to SCL on MCU
- INT - Interrupt output active LOW. Output is open-collector so requires pull-up resistor. Connects to an interrupt input on the MCU if used
Sample Code
/*
APDS9960 - Gesture Sensor Test
This example reads gesture data from the APDS9960 sensor and prints any
detected gestures and proximity infor to the Serial Monitor and to a 16x2
I2C LCD display if attached.
Gesture directions are as follows:
- UP: from header side
- DOWN: toward header side
- LEFT: from INT pin side
- RIGHT: toward INT pin side
*/
#include <Arduino_APDS9960.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // set LCD address to 0x27 for 16x2 display
int proximity = 0;
//===============================================================================
// Initialization
//===============================================================================
void setup() {
Serial.begin(9600);
lcd.begin();
lcd.clear();
lcd.backlight(); // Make sure backlight is on
if (!APDS.begin()) {
Serial.println("Error initializing APDS9960 sensor!");
}
// for setGestureSensitivity(..) a value between 1 and 100 is required.
// Higher values makes the gesture recognition more sensitivee but less accurate
// (a wrong gesture may be detected). Lower values makes the gesture recognition
// more accurate but less sensitive (some gestures may be missed).
// Default is 80 which we are using.
APDS.setGestureSensitivity(80);
Serial.println("Detecting gestures ...");
lcd.setCursor(0, 1);
lcd.print("Proximity: ");
}
//===============================================================================
// Main
//===============================================================================
void loop() {
// Report proximity reading (0-255) if < 240 to avoid clutter
if (APDS.proximityAvailable()) {
proximity = APDS.readProximity();
if (proximity < 240) { // Suppress reporting readings when nothing close
Serial.print("Proximity Detected: ");
Serial.println (proximity);
lcd.setCursor(11, 1); //Move cursor to character 11 on line 1
lcd.print(proximity);
lcd.print(" "); // Erase any extra characters left from last reading
}
}
if (APDS.gestureAvailable()) {
// a gesture was detected, read and print to serial monitor
// and LCD if connected
int gesture = APDS.readGesture();
lcd.setCursor(0, 0); //Move cursor to character 0 on line 0
switch (gesture) {
case GESTURE_UP:
Serial.println("Detected UP gesture");
lcd.print("UP ");
break;
case GESTURE_DOWN:
Serial.println("Detected DOWN gesture");
lcd.print("DOWN ");
break;
case GESTURE_LEFT:
Serial.println("Detected LEFT gesture");
lcd.print("LEFT ");
break;
case GESTURE_RIGHT:
Serial.println("Detected RIGHT gesture");
lcd.print("RIGHT");
break;
default:
// ignore
break;
}
}
}
Resources
Shipping List
- 1 x GY9960 Gesture IR-RGB Sensor I2C 3.3V
- 1 x 6 Pin SIP Header
GY9960 Gesture IR-RGB Sensor
- Brand: Generic
- Product Code: GY9960-33V
- Weight: 0.002kg
- Product Status : Active
Stock
| Warehouse | Stock Status | Location |
|---|---|---|
| Centurion | No Stock | |
| Stellenbosch | No Stock |
We ship free of charge between branches to complete your order.
-
R79.00 (Inc Tax: R90.85)
Related Products
ZX Distance and Gesture Sensor
ZX Distance and Gesture Sensor The ZX Distance and Gesture Sensor is a touchless sensor that is capable of looking for simple gestures. Developed in conjunction with XYZ Interactive, the sensor uses t..
R330.00 (Inc Tax: R379.50)
Wave Spectral Colour Sensor
Wave Spectral Colour Sensor With AS7341 visible spectrum sensing IC as the core, the Wave Spectral Colour Sensor can sense the visible light component values of different bands in the environment. ..
R326.00 (Inc Tax: R374.90)
TCS34725 Colour Sensor - I2C
TCS34725 Colour Sensor - I2C The TCS34725 is a compact, high-accuracy colour sensor module that can detect the colour of objects with precision. It features an integrated IR-blocking filter to mini..
R69.00 (Inc Tax: R79.35)
DF Robot Gravity Edge AI Gesture Sensor
DF Robot Gravity Edge AI Gesture Sensor The DF Robot Gravity Edge AI Gesture Sensor is an intelligent, offline AI vision sensor designed for reliable contactless interaction through facial detectio..
R324.00 (Inc Tax: R372.60)
Tags: gy9960, 9960, apds9960, gesture, ir, infrared, infra, rgb, colour, sensor, i2c, 3.3v, ambient, light, prox, proximity, detec, detection, distance, touchless, gy-9960-33v








