Ingin menambahkan kemampuan deteksi gestur, warna, atau cahaya pada proyek Arduino-mu? Sensor APDS9960 adalah solusinya! Di artikel ini, kita akan bahas cara simple menghubungkan dan memprogram sensor APDS9960 dengan Arduino. Ayo, kita mulai eksplorasi serunya!

untuk codenya kalian bisa gunakan code dibawah ini :
#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);
}
}
Untuk skematik, kamu bisa ikuti skematick di bawah ini

Kabel Merah : VCC
Kabel Hitam : GND
Kabel Kuning : SCL
Kabel Biru : SDA
Kabel Hijau : INT
selamat mencoba, salam labrobotika
Jika anda berminat menggunakan jasa labrobotika, silahkan hubungi admin: WHATSAPP

