APDS-9960 Gestensensor mit Arduino
Der Gestensensor APDS-9960 ermöglicht die Erkennung von Handgesten wie Wischbewegungen und die Näherungserkennung. In diesem Tutorial zeigen wir, wie man den APDS-9960 an einen Arduino anschließt und ihn so programmiert, dass er Gesten erkennt. Das Ergebnis ist ein einfaches Setup, das Bewegungen erfassen und diese über den seriellen Monitor melden kann. Diese Anleitung hilft Ihnen, die Verkabelung und den Code zu verstehen, die nötig sind, um mit dem Gestensensor zu beginnen. (im Video bei 00:30)

Hardware erklärt
Der APDS-9960 ist ein vielseitiger Sensor, der RGB-Farberkennung, Umgebungslichtmessung, Näherungserkennung und Gestenerkennung kombiniert. Er kommuniziert mit dem Arduino über I2C, was eine einfache Integration bei minimaler Verkabelung ermöglicht. Der Sensor arbeitet nur mit 3.3V, daher ist es wichtig, die korrekten Spannungspegel sicherzustellen, um eine Beschädigung des Geräts zu vermeiden. In diesem Aufbau verwenden wir den Arduino, um Gestendaten auszulesen. Der Sensor gibt Gesteninformationen über Interrupts aus, wodurch der Arduino schnell auf Handbewegungen reagieren kann. Die Integration des APDS-9960 mit dem Arduino eröffnet viele Möglichkeiten für interaktive Projekte, einschließlich gestensteuerter Geräte.
Details zum Datenblatt
| Hersteller | Broadcom |
|---|---|
| Teilenummer | APDS-9960 |
| Logik-/I/O-Spannung | 2.7 - 3.6 V |
| Versorgungsspannung | 3.3 V |
| Ausgangsstrom (pro Kanal) | 1 mA |
| Spitzenstrom (pro Kanal) | 10 mA |
| Empfehlungen zur PWM-Frequenz | 100 Hz |
| Schwellenwerte der Eingangslogik | 0.3 x VDD(niedrig), 0.7 x VDD(hoch) |
| Spannungsabfall / RDS(on)/ Sättigung | 0.5 V max |
| Thermische Grenzwerte | -40 bis +85 °C |
| Paket | 6-poliges LGA |
| Notizen / Varianten | Unterstützt I2C-Kommunikation |
- Stellen Sie sicher, dass die Versorgungsspannung 3.6 V nicht überschreitet, um Schäden zu vermeiden.
- Verwenden Sie Pull-up-Widerstände an den I2C-Leitungen für eine zuverlässige Kommunikation.
- Halten Sie den Sensor von direktem Sonnenlicht fern, um genaue Messwerte zu erhalten.
- Stellen Sie sicher, dass der Sensor im Code korrekt initialisiert wird.
- Überprüfen Sie die Kabelverbindungen, um schwebende Eingänge zu vermeiden.
Verdrahtungsanleitung

Beginnen Sie damit, die Stromversorgung anzuschließen. Verwenden Sie ein rotes Kabel, um den VCC-Pin des APDS-9960 mit dem 3.3V-Pin des Arduino zu verbinden. Als Nächstes verbinden Sie den GND-Pin des Sensors mit einem GND-Pin des Arduino mithilfe eines schwarzen Kabels. Für die I2C-Kommunikation verbinden Sie den SDA-Pin des APDS-9960 mit dem A4-Pin des Arduino. Ebenso verbinden Sie den SCL-Pin mit dem A5-Pin des Arduino. Schließlich verbinden Sie den INT-Pin des Sensors mit Pin 2 am Arduino. Dadurch kann der Arduino auf vom Sensor ausgelöste Interrupts reagieren.
Codebeispiele & Schritt-für-Schritt-Anleitung
Der bereitgestellte Code initialisiert den APDS-9960-Sensor und richtet das Arduino so ein, dass Gesten erkannt werden. Hier ist ein kurzer Auszug der Setup-Funktion:
void setup() {
pinMode(APDS9960_INT, INPUT);
Serial.begin(9600);
attachInterrupt(0, interruptRoutine, FALLING);
if ( apds.init() ) {
Serial.println(F("APDS-9960 initialization complete"));
}
}In diesem Ausschnitt initialisieren wir den seriellen Monitor und setzen den Interrupt-Pin. Der Sensor wird initialisiert und eine Bestätigungsmeldung auf der Konsole ausgegeben. Als Nächstes prüfen wir in der loop()-Funktion auf Gesten:
void loop() {
if( isr_flag == 1 ) {
detachInterrupt(0);
handleGesture();
isr_flag = 0;
attachInterrupt(0, interruptRoutine, FALLING);
}
}Hier überprüft die Schleife kontinuierlich auf Gesten. Wenn eine Geste erkannt wird, wird der Interrupt deaktiviert und die Funktion `handleGesture` aufgerufen, um die Geste zu verarbeiten. Schließlich verarbeitet die Funktion `handleGesture` die erkannten Gesten:
void handleGesture() {
if ( apds.isGestureAvailable() ) {
switch ( apds.readGesture() ) {
case DIR_UP:
Serial.println("UP");
break;
case DIR_DOWN:
Serial.println("DOWN");
break;
// Additional cases...
}
}
}In dieser Funktion wird die Geste gelesen und entsprechend der erkannten Richtung die passende Aktion ausgeführt. Dies ermöglicht eine interaktive Steuerung anhand von Handbewegungen. Für ein vollständiges Verständnis des Codes beachten Sie bitte das vollständige Programm, das unterhalb des Artikels geladen ist.

Demonstration / Was Sie erwartet
Wenn die Einrichtung abgeschlossen ist, können Sie erwarten, dass der Arduino Gesten erkennt und die erkannte Richtung im seriellen Monitor anzeigt. Einfache Tests sind, die Hand vor dem Sensor nach oben, unten, links oder rechts zu bewegen. Wenn alles richtig verdrahtet ist, sollten Sie die entsprechende Ausgabe im seriellen Monitor sehen, die die Gestenerkennung bestätigt. Achten Sie auf schwebende Eingänge, da diese zu inkonsistenten Messwerten führen können (im Video bei 05:20).
Video-Zeitstempel
- 00:00- Einführung
- 01:15- Hardware-Übersicht
- 03:00- Verdrahtungsanleitung
- 04:30- Code-Durchgang
- 06:15- Demonstration
Ressourcen & Referenzen
Noch keine Ressourcen vorhanden.