在之前的笔记中波波利用Arduino和APDS9960手势识别模块做了一个蓝牙音响的实验。在实验过程中出现了一个问题,这篇笔记主要为APDS9960手势识别模块使用的补充。
第一个需要注意的问题:PS条线是否连接
PS跳线如果已经连接,则VL引脚无需连接3.3V电源;如果PS跳线是断开状态则需要给VL引脚连接外接电源。具体电压参数参考《Arduino+APDS9960打造手势识别蓝牙音箱(一)》
第二个需要注意的问题:中断
我们发现如果直接用官方的示例源码测试,APDS9960手势识别模块并没有按照预期识别出我们的手势动作。经过排查gesture的值为-1,正确的做法如下:
①连线如下图所示
其中中断引脚INI连接到Arduino的D2引脚上。
②完整源代码。
- /*
- * 项目名称:测试APDS-9960
- * 功能:通过模块获取手势识别信号
- */
- #include <Wire.h>
- #include <Arduino_APDS9960.h>
- void setup() {
- Serial.begin(9600);
- while(!Serial); //等待串口打开
- if(!APDS.begin()){
- Serial.println("APDS sensor initializing error!");
- while(true);
- }
- APDS.setGestureSensitivity(85);
- APDS.setInterruptPin(2);
- Serial.println("Gesture sensor start..");
- }
- void loop() {
- if(APDS.gestureAvailable()){
- int gesture = APDS.readGesture();
- Serial.println(gesture);
- switch(gesture){
- case GESTURE_UP:
- Serial.println("UP!");
- break;
- case GESTURE_DOWN:
- Serial.println("DOWN!");
- break;
- case GESTURE_LEFT:
- Serial.println("LEFT!");
- break;
- case GESTURE_RIGHT:
- Serial.println("RIGHT!");
- break;
- default:
- Serial.println("Please try again !");
- break;
- }
- }
- }
第三个需要注意的问题是电压。无论是VCC还是VL外部供电,电压最好是3.3V,不要超过5V,否则会造成模块的损坏。这可是波波的血泪啊。