APDS-9960模块介绍
APDS-9960是一个体积非常小的传感器,它集成了非接触手势检测、接近检测、数字环境亮度测量和色彩检测等诸多功能。很多手机上也采用了该传感器,例如三星的Galaxy S5。
本篇我们使用搭载了APDS-9960传感器的模块,模块提供了APDS-9960传感器的外部工作电路,同时将管脚引出,方便接线使用,其实物图如下:
模块特点:
管脚定义:
2
安装驱动库
本篇我们需要安装「Adafruit_APDS9960」驱动库。在Arduino IDE中,点击「项目」—「加载库」—「管理库」,搜索选择最新版本进行安装即可。
安装库
3
实验材料
4
实验步骤
OLED屏和手势识别模块都使用了IIC通讯方式。将两个模块的VCC、GND分别连接开发板的3.3V、GND,两个模块的SDA、SCL分别连接开发板的A4、A5。
实验原理图如下图所示:
实验原理图
#include "Adafruit_APDS9960.h"
#include < Wire.h >
#include < Adafruit_GFX.h >
#include < Adafruit_SSD1306.h >
Adafruit_APDS9960 apds;
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.setTextColor(WHITE);//开像素点发光
oled.clearDisplay();//清屏
oled.setTextSize(2); //设置字体大小
apds.begin();
apds.enableProximity(true);
apds.enableGesture(true);
}
void loop() {
uint8_t gesture = apds.readGesture();
oled.clearDisplay();//清屏
oled.setCursor(15, 2);//设置显示位置
oled.println("APDS-9960");
oled.setCursor(32, 40);//设置显示位置
switch (gesture)
{
case APDS9960_UP: oled.println("[ Up ]"); break;
case APDS9960_DOWN: oled.println("[Down]"); break;
case APDS9960_LEFT: oled.println("[Left]"); break;
case APDS9960_RIGHT: oled.println("[Right]"); break;
default: oled.println("[----]"); break;
}
oled.display(); // 开显示
}
程序下载
5
实验现象
我们从不同方向移动手进入传感器检测范围,然后慢慢移出,模块会对应识别出移动方向。当然识别结果也会受环境光影响,但大概率识别还是很准确的。
全部0条评论
快来发表一下你的评论吧 !