37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验九十五:APDS-9960 GY-9960-3.3 RGB红外手势传感器 方向识别模块
这是一个 RGB和手势传感器模块,小接口板具有内置APDS-9960芯片,提供环境光与颜色测量,接近检测和非接触手势检测。有了这个RGB和手势感应器,你就可以控制一台计算机,单片机,机器人,它比你的手一个简单的刷卡功能强大的多!实际上,该手势传感器APDS-9960在三星Galaxy S5中使用。该APDS-9960是一个极小的传感器,内置紫外线和红外线阻隔滤镜,四个单独的二极管不同方向的敏感,以及一个I2C兼容接口。为了使用方便,设计出了以下引脚:VL(可选功率IR LED),GND(地),VCC(电源,APDS-9960传感器),SDA(I2C数据),SCL(时钟I2C)和INT(中断)。每个APDS-9960还具有4至8英寸(10至20cm)的检测范围。
APDS-9960 中文资料 (P39)
https://wenku.baidu.com/view/2b2 … 4ae45c3b35c27b.html
https://max.book118.com/html/2017/0905/131913559.shtm
模块电原理图
APDS-9960手势检测模块参数与特点:
工作电压:3.3V
环境光及RGB色彩感应
接近检测
手势检测
测量范围:4-8in(10-20CM)
I2C接口(I2C地址:0x39)
对于APDS
SDA = A4
SCL = A5
GND = GND
VCC = 3.3V
GY9960红外手势传感器模块实验所需硬件清单
Arduino Uno开发板 X1
0.96寸OLED显示屏X1
杜邦线 若干(备了9条)
IIC/I2C 1602 LCD液晶屏模块X1
高电平触发有源蜂鸣器模块X1
GY9960红外手势传感器模块X2
LED发光二极管(绿、蓝色)X2
Proto Shield 原型扩展板(带mini面包板)X1
传感器模块实验所需软件平台
代码编程 Arduino IDE (版本1.8.19)
仿真编程 Linkboy (版本V4.6.3)
图形编程 Mind+ (版本 V1.7.0 RC2.0)
以及编玩边学(线上平台https://ide.codepku.com/?type=Arduino)
打开Arduino IDE——工具——管理库,搜索APDS-9960,并安装
实验接线示意图
GY9960红外手势传感器模块的几个实验
程序一:当接近度读数超过175时触发中断阈值
(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序一:当接近度读数超过175时触发中断阈值
注:设备的 I2C 地址为 0x39
*/
#include "Adafruit_APDS9960.h"//导入APDS9960驱动库
#define INT_PIN 2//中断附加到的引脚D2
Adafruit_APDS9960 apds;//创建APDS9960对象
void setup() {
Serial.begin(115200);
pinMode(INT_PIN, INPUT_PULLUP);
if (!apds.begin()) {
Serial.println("初始化设备失败!请检查您的接线。");
}
else Serial.println("设备已初始化!");
//开启接近模式
apds.enableProximity(true);
//设置当接近度读数超过175时触发中断阈值
apds.setProximityInterruptThreshold(0, 175);
//启用接近中断
apds.enableProximityInterrupt();
}
void loop() {
//当中断引脚变低时打印接近度读数
if (!digitalRead(INT_PIN)) {
Serial.println(apds.readProximity());
apds.clearInterrupt();//清除中断
delay(500);
}
}
(2)实验串口返回情况
(3)实验场景图
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验九十五:APDS-9960 GY-9960-3.3 RGB红外手势传感器 方向识别模块
程序二:测试颜色识别模式
(1)Arduino参考开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
程序二:测试颜色识别模式
注:设备的 I2C 地址为 0x39
*/
#include "Adafruit_APDS9960.h"//导入APDS9960驱动库
//创建APDS9960对象
Adafruit_APDS9960 apds;
void setup() {
Serial.begin(115200);
if (!apds.begin()) {
Serial.println("初始化设备失败!请检查您的接线。");
}
else Serial.println("设备已初始化!");
//启用颜色识别模式
apds.enableColor(true);
}
void loop() {
//创建一些变量来存储颜色数据
uint16_t r, g, b, c;
//等待颜色数据准备好
while (!apds.colorDataReady()) {
delay(5);
}
//获取数据并打印不同的通道
apds.getColorData(&r, &g, &b, &c);
Serial.print("红色:");
Serial.println(r);
Serial.print("绿色: ");
Serial.println(g);
Serial.print("蓝色: ");
Serial.println(b);
Serial.print("清除:");
Serial.println(c);
Serial.println();
delay(5000);
}
(2)实验串口返回情况