APDS9960手势识别模块Arduino示例

在之前的笔记中波波利用Arduino和APDS9960手势识别模块做了一个蓝牙音响的实验。在实验过程中出现了一个问题,这篇笔记主要为APDS9960手势识别模块使用的补充。

第一个需要注意的问题:PS条线是否连接

PS跳线如果已经连接,则VL引脚无需连接3.3V电源;如果PS跳线是断开状态则需要给VL引脚连接外接电源。具体电压参数参考《Arduino+APDS9960打造手势识别蓝牙音箱(一)

第二个需要注意的问题:中断

我们发现如果直接用官方的示例源码测试,APDS9960手势识别模块并没有按照预期识别出我们的手势动作。经过排查gesture的值为-1,正确的做法如下:

①连线如下图所示

APDS9960手势识别模块Arduino示例

其中中断引脚INI连接到Arduino的D2引脚上。

②完整源代码。

  1. /*
  2.  * 项目名称:测试APDS-9960
  3.  * 功能:通过模块获取手势识别信号
  4.  */
  5. #include <Wire.h>
  6. #include <Arduino_APDS9960.h>
  7. void setup() {
  8.   Serial.begin(9600);
  9.   while(!Serial); //等待串口打开
  10.   if(!APDS.begin()){
  11.     Serial.println("APDS sensor initializing error!");
  12.     while(true);
  13.   }
  14.   APDS.setGestureSensitivity(85);
  15.   APDS.setInterruptPin(2);
  16.   Serial.println("Gesture sensor start..");
  17. }
  18. void loop() {
  19.   if(APDS.gestureAvailable()){
  20.     int gesture = APDS.readGesture();
  21.     Serial.println(gesture);
  22.     switch(gesture){
  23.       case GESTURE_UP:
  24.         Serial.println("UP!");
  25.         break;
  26.       case GESTURE_DOWN:
  27.         Serial.println("DOWN!");
  28.         break;
  29.       case GESTURE_LEFT:
  30.         Serial.println("LEFT!");
  31.         break;
  32.       case GESTURE_RIGHT:
  33.         Serial.println("RIGHT!");
  34.         break;
  35.       default:
  36.         Serial.println("Please try again !");
  37.         break;
  38.       }
  39.    }
  40. }

第三个需要注意的问题是电压。无论是VCC还是VL外部供电,电压最好是3.3V,不要超过5V,否则会造成模块的损坏。这可是波波的血泪啊。

波波
你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!