想做一个“挥手亮灯”“挥一下翻页”的免接触装置,APDS-9960是很合适的选择。它一颗芯片集成了手势、近距离、RGB色彩和环境光四种功能,走I2C接口,接Arduino就行。这篇文章讲清接线和手势识别的几个关键点。

接线:四根线一次搞定
APDS-9960模块一般引出VIN(或VCC)、GND、SDA、SCL,外加一个INT中断脚。VIN接3.3V或5V(板载稳压会给芯片降到3.3V),GND共地,SDA接A4、SCL接A5。它的I2C地址是固定的0x39,没法改。
INT是可选中断脚,可接Arduino的D2配合中断检测“有新读数”,如果不想用中断,轮询读取也能跑。要注意芯片本身的逻辑是3.3V,合封板多数已做电平处理接5V主控没问题,但裸片和一些平价板用5V主控时留意是否需要电平配。
很多教程提示手势传感尽量让传感器正面朝上没有遮挡,且手要在它正上方两三厘米的地方活动,角度和距离都影响识别率。

手势不是一挥手就行,要先“激活”
用Adafruit的APDS-9960库,流程是enableProximity开启近距离,再enableGesture开启手势。之后在循环里不断调用gesture(),返回非0值就代表捕捉到一次手势,数值1/2/3/4分别对应上/下/左/右。
最容易踩的坑是:必须先让手快速靠近传感器激活手势模式,再做滑动手势,否则它根本不识别。官方经验是手先到传感器正上方接近、触发近距离,然后才做左右或上下挥动。
三个高频坑提前避开
坑一:手势没反应。多数是没先“靠近激活”,或者手势速度太慢/太高。手离传感器几厘米内、干净利落地划过,识别最稳。
坑二:A4/A5或I2C地址搞错,扫描不到0x39设备。
坑三:供电用5V而板子没做电平转换导致通信异常。买板前看清是否兼容5V,或统一用3.3V。
跑通后,做挥手免触开关、手势翻页尺子、或者智能灯挥手调亮度,都很有成就感。







挥手免触开关做出来很有成就感,比按键好用多了
手势要先靠近传感器激活再做滑动,我一开始直接挥怎么都不识别
手要离传感器几厘米内、干净利落地划过,识别最稳
地址是固定的0x39,先扫I2C确认在不在,别急着改代码