风筝
发表于: 2020-1-13 21:20:45 | 显示全部楼层

在本篇文章中,我们将探讨APDS-9960手势传感器以及如何将其用于WS2812B来控制Neopixel LED灯条。


我们可以使用简单的手势来控制LED灯条。左右移动您的手会改变运行LED的方向,而上下移动您的手会改变其颜色。


APDS-9960 RGB和手势传感器

APDS-9960 RGB和手势传感器是一个很小的扩展板,带有环境光、颜色测量、近检测和非接触手势功能。

APDS-9960 RGB and gesture sensor.jpg

APDS-9960 RGB和手势传感器。


该传感器是功能很多,也可以用作接近传感器。它主要用于智能手机中,在黑暗环境中降低屏幕亮度,或在接听电话时禁用触摸屏。这与三星Galaxy S5中使用的传感器完全相同,并且可能是市场上最便宜、最好的手势传感器模块之一。


该传感器模块内置有紫外线阻挡滤光片和四个用于不同方向的单独的传感器二极管,与I2C协议兼容,非常易于与Arduino集成。


传感器引脚分布

●    VL(IR LED的可选电源)

●    GND(地)

●    VCC(用于为模块加电)

●    SDA(I2C数据)

●    SCL(I2C时钟)

传感器规格参数

●    工作电压:3.3V

●    尺寸:20mm X 15.3mm

●    I2C接口(0X39)

●    环境光

●    接近

●    手势方向


WS2812B LED灯条

WS2812B LED灯条带有5050 RGB LED灯,并集成了非常紧凑的WS2812B LED驱动器IC。


WS2812B是可寻址的LED灯带,有几种型号、不同的尺寸和LED密度。在本文中,我将使用一个带30个WS2812B的LED灯的1米长灯条。这些LED防水且防尘,因为它们封装在防水的硅胶外壳中。

LED strip.jpg

LED灯条装在防水的硅胶外壳中。


LED串联连接,并且由于驱动器集成在LED中,因此每个驱动器都是可寻址的。具有可寻址LED可使我们分别控制每个LED的亮度和颜色,从而轻松产生复杂的效果。此外,该LED灯带非常灵活,可以切割成任意长度。

A close up of the driver IC on the LED strip..png

近距离查看LED灯带上的驱动器IC。


现在,我们对关键硬件有了深刻的了解,让我们深入研究该项目!


必备的组件

●    Arduino IDE

●    FastLED库

●    Arduino UNO

●    APDS-9960传感器

●    WS2812B LED灯条

Required hardware.jpg

所需的硬件


硬件接线

**注意:您必须使用3.3V才能为该模块供电;如果尝试使用的电源超过3.3V,则有可能会损坏APDS-9960模块。

Fritzing diagram.png


将APDS-9960通过I2C连接到Arduino

APDS9960的SCL引脚应与Arduino上的SCL引脚连接。该针脚因您的主板型号而异。以下是一些常见的引脚号:

●    Arduino Uno:A5

●    基于ATmega385的Arduino开发板:A5

●    Leonardo:3

●    Arduino Mega:21


SDA引脚应与Arduino上的I2C数据SDA引脚连接。在Arduino Uno或基于Atmega385的Arduino中,是A4引脚,在Leonardo中为2,在Arduino Mega中为20。


VCC应连接3.3V,并将GND连接至GND。


将WS2812B与Arduino连接

LED灯条的接地引脚应与Arduino的GND连接,而WS2812B的数据引脚应与Arduino引脚7连接。


为了获得最佳结果,请将LED灯条的5+引脚连接到外部电源。您可以为此使用手机充电器。如果您有30个LED灯带,则总共消耗1.5A电流,每个LED消耗50mA电流。


我使用Arduino的5V引脚为灯条供电,因为我对亮度没太大要求。但是,如果要控制更多的LED,则必须使用外部电源。

The project hardware connected and powered on.jpg

项目硬件已连接


下载库并将源代码上传到Arduino

接下来,我们需要上传源代码(单击链接以访问代码)以及下载APDS-9960库FastLED库


要将库上传到Arduino IDE,请按照以下步骤操作。


转到Sketch —> Include Library —> Add.ZIP Library。对所有库重复这些步骤。

Add.ZIP Library..png

添加库后,将Arduino开发板与计算机连接。然后转到Tools —> Board,选择Arduino UNO开发板。

转到Tools —> Port —> COM PORT。本例中是COM3。

在上传代码之前,请确保根据您的要求更改Arduino Sketch中的LED数量。本示例使用30个LED的灯带。

30 LED.png


将代码复制并粘贴到Arduino,然后选择Upload


上传代码后,您可以测试您的项目。为了进行测试,请在传感器上方左右移动您的手,并观察LED灯带的动画。


以下是本文使用的完整代码: main.rar (1.45 KB, 下载次数: 106)

跳转到指定楼层
11zhangjing11
发表于: 2020-3-16 14:59:13 | 显示全部楼层

代码损坏是怎么回事
回复

使用道具 举报

菜虫
发表于: 2020-9-25 20:58:05 | 显示全部楼层

上传完成,但传感器不起作用,求解
回复

使用道具 举报

xiafan
发表于: 2023-3-22 17:10:34 | 显示全部楼层

传感器不起作用求解
回复

使用道具 举报

xiafan
发表于: 2023-3-22 17:11:03 | 显示全部楼层

菜虫 发表于 2020-9-25 20:58
上传完成,但传感器不起作用,求解

有法了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1477



手机版|

GMT+8, 2024-3-19 19:29 , Processed in 0.095718 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表