回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【雕爷学编程】Arduino动手做(95)---GY9960手势传感器模块3 中等

头像 驴友花雕 2023.07.27 74 0

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

 

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验九十五:APDS-9960 GY-9960-3.3 RGB红外手势传感器 方向识别模块

 

0.jpg

GY9960红外手势传感器模块实验所需硬件清单
Arduino Uno开发板 X1
0.96寸OLED显示屏X1
杜邦线 若干(备了9条)
IIC/I2C 1602 LCD液晶屏模块X1
高电平触发有源蜂鸣器模块X1
GY9960红外手势传感器模块X2
LED发光二极管(绿、蓝色)X2
Proto Shield 原型扩展板(带mini面包板)X1
 

5.11-10.jpg
5.11-11.jpg

传感器模块实验所需软件平台
代码编程 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,并安装
 

5.11-12.jpg

实验接线示意图

 

5.11-13.jpg

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)实验串口返回情况

 

5.11-14.jpg

(3)实验场景图
 

5.11-15.jpg

【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)实验串口返回情况

 

5.11-16.jpg

评论

user-avatar
icon 他的勋章
    展开更多