Sensor de gestos APDS-9960 con Arduino
El sensor de gestos APDS-9960 permite la detección de gestos de la mano, como deslizamientos y proximidad. En este tutorial, demostraremos cómo conectar el APDS-9960 a un Arduino y programarlo para reconocer gestos. El resultado será una configuración sencilla que puede detectar movimientos y reportarlos a través del monitor serie. Esta guía te ayudará a entender el cableado y el código necesarios para comenzar con el sensor de gestos. (en el video a 00:30)

Hardware explicado
El APDS-9960 es un sensor versátil que combina detección de color RGB, detección de luz ambiental, detección de proximidad y capacidades de detección de gestos. Se comunica con el Arduino mediante I2C, lo que permite una fácil integración con un cableado mínimo. El sensor solo funciona a 3.3V, por lo que es esencial asegurar niveles de voltaje adecuados para evitar dañar el dispositivo. En este montaje, usaremos el Arduino para leer los datos de los gestos. El sensor emite información de gestos mediante interrupciones, lo que permite que el Arduino responda con rapidez a los movimientos de la mano. La integración del APDS-9960 con el Arduino abre muchas posibilidades para proyectos interactivos, incluidos dispositivos controlados por gestos.
Detalles de la hoja de datos
| Fabricante | Broadcom |
|---|---|
| Número de pieza | APDS-9960 |
| Voltaje de lógica/E/S | 2.7 - 3.6 V |
| Tensión de alimentación | 3.3 V |
| Corriente de salida (por canal) | 1 mA |
| Corriente de pico (por canal) | 10 mA |
| Guía de frecuencia PWM | 100 Hz |
| Umbrales lógicos de entrada | 0.3 × VDD(bajo), 0.7 x VDD(alto) |
| Caída de tensión / RDS(encendido)/ saturación | 0.5 V máx. |
| Límites térmicos | -40 a +85 °C |
| Paquete | LGA de 6 pines |
| Notas / variantes | Admite comunicación I2C |
- Asegúrese de que la tensión de alimentación no supere 3.6 V para evitar daños.
- Utilice resistencias pull-up en las líneas I2C para una comunicación fiable.
- Mantenga el sensor alejado de la luz solar directa para obtener lecturas precisas.
- Asegúrate de inicializar correctamente el sensor en el código.
- Compruebe las conexiones del cableado para evitar entradas flotantes.
Instrucciones de cableado

Para cablear el APDS-9960 al Arduino, comience conectando la alimentación. Use un cable rojo para conectar el pin VCC del APDS-9960 al pin de 3.3V del Arduino. A continuación, conecte el pin GND del sensor a un pin de tierra del Arduino usando un cable negro. Ahora, para la comunicación I2C, conecte el pin SDA del APDS-9960 al pin A4 del Arduino. De manera similar, conecte el pin SCL al pin A5 del Arduino. Por último, conecte el pin INT del sensor al pin 2 del Arduino. Esto permitirá que el Arduino responda a las interrupciones generadas por el sensor.
Ejemplos de código y guía paso a paso
El código proporcionado inicializa el sensor APDS-9960 y configura el Arduino para leer gestos. Aquí hay un breve extracto de la función setup:
void setup() {
pinMode(APDS9960_INT, INPUT);
Serial.begin(9600);
attachInterrupt(0, interruptRoutine, FALLING);
if ( apds.init() ) {
Serial.println(F("APDS-9960 initialization complete"));
}
}En este fragmento, inicializamos el monitor serie y configuramos el pin de interrupción. Se inicializa el sensor y se imprime un mensaje de confirmación en la consola. A continuación, comprobamos los gestos en la función loop:
void loop() {
if( isr_flag == 1 ) {
detachInterrupt(0);
handleGesture();
isr_flag = 0;
attachInterrupt(0, interruptRoutine, FALLING);
}
}Aquí, el bucle comprueba continuamente si hay gestos. Cuando se detecta un gesto, se desactiva la interrupción y se llama a la función `handleGesture` para procesar el gesto. Finalmente, la función `handleGesture` procesa los gestos detectados:
void handleGesture() {
if ( apds.isGestureAvailable() ) {
switch ( apds.readGesture() ) {
case DIR_UP:
Serial.println("UP");
break;
case DIR_DOWN:
Serial.println("DOWN");
break;
// Additional cases...
}
}
}En esta función se lee el gesto y se realiza la acción correspondiente según la dirección detectada. Esto permite un control interactivo basado en los movimientos de la mano. Para una comprensión completa del código, por favor consulte el programa completo cargado debajo del artículo.

Demostración / Qué esperar
Cuando la configuración esté completa, puedes esperar que el Arduino lea gestos y muestre la dirección detectada en el monitor serie. Pruebas simples incluyen mover la mano hacia arriba, hacia abajo, hacia la izquierda o hacia la derecha frente al sensor. Si todo está cableado correctamente, deberías ver la salida correspondiente en el monitor serie, lo que confirma el reconocimiento de gestos. Ten cuidado con las entradas flotantes, ya que pueden provocar lecturas inconsistentes (en el vídeo en 05:20).
Marcas de tiempo del vídeo
- 00:00- Introducción
- 01:15- Descripción general del hardware
- 03:00- Instrucciones de cableado
- 04:30- Recorrido por el código
- 06:15- Demostración
Recursos y referencias
Aún no hay recursos.