SOMMAIRE ►
Le module Arduino APDS-9960 est une petite carte avec un capteur intégré qui permet la détection de la lumière et des couleurs, la détection de proximité et la reconnaissance des gestes sans contact. Il peut être utilisé pour commander des robots, des lumières et bien plus encore d’un simple geste de la main. Voyons comment connecter le module de capteur de RGB et reconnaissance des gestes SparkFun APDS 9960 à une carte Arduino.
Pour cette activité, nous aurons besoin:
- Arduino Uno / Arduino Nano / Arduino Mega
- module APDS9960 Arduino
- fils de connexion
- librairie SparkFun_APDS9960.h
Matériel supplémentaire sur ce sujet:
Fonctionnement capteur de gestes APDS-9960
Capteur de gestes APDS-9960 grove est doté d’un capteur de lumière ambiante (ALS) intégré, d’un filtre ultraviolet et infrarouge, de quatre photodiodes séparées (récepteurs qui détectent le rayonnement IR réfléchi par un objet) et d’une LED IR (émetteur). Lorsque nous effectuons un geste de la main, le capteur reçoit le rayonnement infrarouge réfléchi et le microcontrôleur Arduino calcule la direction du mouvement de la main ou de l’objet.

Caractéristiques APDS-9960 Arduino
- Alimentation: 3,3 V
- Adresse I2C: 0x39
- Détection de proximité
- Détection de gestes
- Détection de la lumière ambiante et de la couleur RVB
- Portée de fonctionnement: de 10 à 20 cm (4 à 8 pouces)
Il y a 2 cavaliers PS et I2C PU sur la face avant de la carte du capteur :
PS – ce cavalier relie l’alimentation du module et de la LED IR. Lorsque le cavalier est fermé, l’alimentation doit être fournie uniquement à la broche VCC du module. Lorsque le cavalier est ouvert, une alimentation séparée doit être appliquée à la broche VL du capteur SparkFun afin d’allumer la LED IR. Par défaut, ce cavalier est fermé.
I2C PU – Ce cavalier est utilisé pour connecter des résistances d’excursion haute sur les lignes SDA et SCL. Si les résistances pull-up ne sont pas nécessaires, ouvrez le cavalier.
Comment brancher capteur de gestes Arduino Uno

| APDS-9960 I2C | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VDD | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
Le sensor est capable de détecter le niveau global de lumière en lux ou les niveaux de lumière dans les trois canaux du spectre – rouge, vert, bleu (RVB). Approche et retrait d’un objet (obstacle) du capteur, gestes simples (mouvement gauche, droite, haut, bas). Vous devez également installer la bibliothèque APDS9960.h pour travailler avec le module. Après avoir construit le circuit montré ci-dessus, chargez le programme dans l’Arduino Uno.
Programme Arduino pour des gestes APDS 9960
#include "Wire.h" #include "SparkFun_APDS9960.h" #define APDS9960_INT 2 SparkFun_APDS9960 apds = SparkFun_APDS9960(); int isr_flag; void setup() { Serial.begin(9600); attachInterrupt(0, interruptRoutine, FALLING); if ( apds.init() ) { Serial.println(F("APDS-9960 initialization complete")); } else { Serial.println(F("Something went wrong during APDS-9960 init!")); } if ( apds.enableGestureSensor(true) ) { Serial.println(F("Gesture sensor is now running")); } else { Serial.println(F("Something went wrong during gesture sensor init!")); } } void loop() { if( isr_flag == 1 ) { detachInterrupt(0); handleGesture(); isr_flag = 0; attachInterrupt(0, interruptRoutine, FALLING); } } void interruptRoutine() { isr_flag = 1; } void handleGesture() { if ( apds.isGestureAvailable() ) { switch ( apds.readGesture() ) { case DIR_UP: Serial.println("UP"); break; case DIR_DOWN: Serial.println("DOWN"); break; case DIR_LEFT: Serial.println("LEFT"); break; case DIR_RIGHT: Serial.println("RIGHT"); break; case DIR_NEAR: Serial.println("NEAR"); break; case DIR_FAR: Serial.println("FAR"); break; default: Serial.println("NONE"); } } }
Explication du code pour de reconnaissance des gestes:
- passez votre main devant le capteur GY-9960-LLC – le moniteur du port IDE de l’Arduino vous dira quel geste a été reconnu;
- si aucun geste n’est défini, NONE apparaîtra sur le moniteur du port.
Conclusion. Le capteur GY 9960 LLC peut facilement détecter la proximité d’un objet, des gestes simples, la lumière et les couleurs (luminosité des valeurs de couleur RVB). Il existe d’autres exemples dans la bibliothèque SparkFun_APDS9960.h pour démontrer les capacités du capteur. Par exemple, AmbientLightInterrupt vous permet de mesurer la lumière ambiante et l’exemple ColorSensor lit les valeurs de lumière rouge, verte et bleue.








merci pour ces explications