APDS-9960模块介绍
APDS-9960是一个体积非常小的传感器,它集成了非接触手势检测、接近检测、数字环境亮度测量和色彩检测等诸多功能。很多手机上也采用了该传感器,例如三星的Galaxy S5。
本篇我们使用搭载了APDS-9960传感器的模块,模块提供了APDS-9960传感器的外部工作电路,同时将管脚引出,方便接线使用,其实物图如下:
模块特点:
管脚定义:
- VL:如果PS跳线断开,则IR LED的可选电源。必须为3.0-4.5V
- GND:接地
- VCC:用于为APDS-9960传感器供电。必须为2.4-3.6V
- SDA:IIC数据引脚
- SCL:IIC时钟引脚
- INT:外部中断引脚。中断事件时为低电平有效
2
安装驱动库
本篇我们需要安装「Adafruit_APDS9960」驱动库。在Arduino IDE中,点击「项目」—「加载库」—「管理库」,搜索选择最新版本进行安装即可。
安装库
3
实验材料
4
实验步骤
1. 根据原理图搭建电路图。
OLED屏和手势识别模块都使用了IIC通讯方式。将两个模块的VCC、GND分别连接开发板的3.3V、GND,两个模块的SDA、SCL分别连接开发板的A4、A5。
实验原理图如下图所示:
实验原理图
2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
#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(); // 开显示
}
3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。
程序下载
5
实验现象
我们从不同方向移动手进入传感器检测范围,然后慢慢移出,模块会对应识别出移动方向。当然识别结果也会受环境光影响,但大概率识别还是很准确的。
-
传感器
+关注
关注
2553文章
51511浏览量
757285 -
RGB
+关注
关注
4文章
801浏览量
58762 -
LED屏
+关注
关注
0文章
209浏览量
17061 -
外部中断
+关注
关注
1文章
132浏览量
15894 -
IIC通信
+关注
关注
0文章
19浏览量
3059
发布评论请先 登录
相关推荐
![](https://file.elecfans.com/web2/M00/3A/26/pYYBAGJCZ96AB8M4AAO1HRAhhYg712.jpg)
评论