Sensor Gesture APDS9960 adalah modul sensor yang dirancang untuk mendeteksi gerakan tangan, serta berbagai aktivitas lingkungan seperti cahaya dan warna. Diproduksi oleh perusahaan Avago Technologies, sensor ini semakin populer dalam pengembangan perangkat yang membutuhkan interaksi pengguna yang lebih intuitif, terutama pada aplikasi IoT dan teknologi wearable.

PASTIKAN TELAH MENDOWNLOAD LIBRARY UNTUK SENSOR & ARDUINO UNO!!

Alat – alat yang digunakan :

  • Arduino Uno
  • Sensor Gestur APDS 9960
  • Kabel Jumper

Rangkaian Pin :

  • GND Sensor => GND Arduino Uno
  • VCC Sensor => 5v Arduino Uno
  • SDA Sensor => A2 Arduino Uno
  • SCL Sensor => A3 Arduino Uno
  • INT Sensor => Pin 2 Arduino Uno

Berikut Source Code Sederhana untuk Sensor Gestur APDS 9960 :

#include <Arduino.h>

#include <Wire.h>
#include <SparkFun_APDS9960.h>

#define APDS9960_INT 2
SparkFun_APDS9960 apds = SparkFun_APDS9960();
volatile int isr_flag = 0;

 
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");
}
}
}
 



void setup()
{
Serial.begin(9600);
pinMode(APDS9960_INT, INPUT);
Serial.println();
Serial.println(F("--------------------------------"));
Serial.println(F("SparkFun APDS-9960 - GestureTest"));
Serial.println(F("--------------------------------"));
attachInterrupt(digitalPinToInterrupt(APDS9960_INT), 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(APDS9960_INT);
handleGesture();
isr_flag = 0;
attachInterrupt(digitalPinToInterrupt(APDS9960_INT), interruptRoutine, FALLING);
}


}


Jika Kalian Perlu Bantuan Atau Ingin Membuat Sebuah Project Yang Berhubungan Dengan Tutorial Ini Bisa Hubungi Kami Lewat Link Whatsapp Dibawah Ini :

@labrobotika

Terimakasih & Selamat Mencoba !!!

Mau Konsultasi & Diskusi ?