查看APDS-9960的源代码
←
APDS-9960
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
你刚才请求的操作只对属于该用户组的用户开放:
用户
您可以查看并复制此页面的源代码:
[[Image:.jpg|400px|thumb|轨迹球模块]] === 产品简介 === APDS-9960模块采用了集合环境光感应、颜色感应、接近检测及非接触式手势感应四个功能的传感器[https://www.broadcom.cn/products/optical-sensors/integrated-ambient-light-and-proximity-sensors/apds-9960# APDS-9960]制作。你可以使用该传感器,通过简单的手势控制电机,Led等设备! 该传感器采用8引脚封装,体积极小,具有数字 RGB、环境光、近程和手势传感器功能,并且兼容IIC接口,内置紫外线和红外线阻隔滤镜,可在复杂环境下检测光强度及色温。利用四个定向二极管,与可见光遮光滤光片集成,手势检测能准确地感应“上下左右”以及更复杂的动作;检测距离10-20cm。模块内增加的微光学透镜能提供高效的传输和红外能量的接收。内部状态机能够将该装置处于 RGBC、近程和手势测量之间的低功耗状态,提供极低的功耗。 === 规格参数 === * 工作电压:3.3V * 环境光及RGB彩色感应 * 接近检测 * 手势检测 * 操作范围:10-20cm * I2C 接口(I2C 默认地址: 0x39) === 传感器特点 === 光学模块中的 RGBC 光传感器和带红外 LED 的近程和手势检测器 * 微型封装尺寸:3.94(长)x 2.36(宽)x 1.35(高)毫米 * I2C 接口与专用中断引脚兼容 * 深色玻璃后运作依然高灵敏度 * RGBC 光感测,带有集成 UV-IR 遮光滤光片 * 几何排列的 RGBC 二极管可提供统一的角度响应 * 校准至 100 毫米检测距离,无需客户的最终产品校准 * 四个独立的二极管可感应不同的方向 * 配有可见光遮光滤光片的近程和手势感测 * 受专利保护的屏蔽设计,将近程串扰将至最低 * 集成光学透镜,校准红外 LED 光束并提升光电二极管的灵敏度。 * 低功耗:睡眠模式功率为 1.0 微安典型值 === 应用场景 === * 显示背光控制 * 相关色温感测 * 可禁用手机触摸屏 * 可禁用数码相机触摸屏 * 机械开关更换 * 手势检测 === 引脚说明 === 模块引出5个引脚方便用户使用: VCC(电源,APDS-9960传感器),GND(地),SDA(I2C数据),SCL(时钟I2C)和INT(中断) === 应用示例 === <br> :'''电路连接示意图''' <br> <!--[[Image: 轨迹球模块.jpg|400px|center|轨迹球模块接线图]]--> :'''示例代码''' <pre > #include <Wire.h> #include <SparkFun_APDS9960.h> // Pins #define APDS9960_INT 2 // Needs to be an interrupt pin // Constants // Global Variables SparkFun_APDS9960 apds = SparkFun_APDS9960(); int isr_flag = 0; void setup() { // Set interrupt pin as input pinMode(APDS9960_INT, INPUT); // Initialize Serial port Serial.begin(9600); Serial.println(); Serial.println(F("--------------------------------")); Serial.println(F("SparkFun APDS-9960 - GestureTest")); Serial.println(F("--------------------------------")); // Initialize interrupt service routine attachInterrupt(0, interruptRoutine, FALLING); // Initialize APDS-9960 (configure I2C and initial values) if ( apds.init() ) { Serial.println(F("APDS-9960 initialization complete")); } else { Serial.println(F("Something went wrong during APDS-9960 init!")); } // Start running the APDS-9960 gesture sensor engine if ( apds.enableGestureSensor(true) ) { Serial.println(F("Gesture sensor is now running")); } else { Serial.println(F("Something went wrong during gesture sensor init!")); } } void loop() { if( isr_flag == 1 ) { detachInterrupt(0); handleGesture(); isr_flag = 0; attachInterrupt(0, interruptRoutine, FALLING); } } void interruptRoutine() { isr_flag = 1; } void handleGesture() { if ( apds.isGestureAvailable() ) { switch ( apds.readGesture() ) { case DIR_UP: Serial.println("UP"); break; case DIR_DOWN: Serial.println("DOWN"); break; case DIR_LEFT: Serial.println("LEFT"); break; case DIR_RIGHT: Serial.println("RIGHT"); break; case DIR_NEAR: Serial.println("NEAR"); break; case DIR_FAR: Serial.println("FAR"); break; default: Serial.println("NONE"); } } } </pre> 程序下载地址:[https://eyun.baidu.com/s/3dFAATLB GestureTest] 程序运行结果: <img src="http://image.yfrobot.com/APDS_9960/GestureTest.jpg-yf" alt="GestureTest" /> ===参考资料=== <br> *[http://wiki.yfrobot.com/datasheet/APDS-9960_datasheet.pdf APDS-9960 datasheet] *[https://eyun.baidu.com/s/3o84mXrs APDS-9960_arduino_lib] ---- [[首页 | 返回首页]] 更多建议和问题欢迎反馈至 [http://www.yfrobot.com YFRobot论坛] 购买方式:[http://yfrobot.taobao.com/ YFRobot 电子工作室]
返回
APDS-9960
。
导航菜单
个人工具
登录
名字空间
页面
讨论
不转换
变种
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
台灣正體
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
YF-论坛提问
YFRobot-直营店
YFRobot-企业店
Arduino
Arduino之入门篇
Arduino入门教程
Arduino语法参考
Arduino库
Arduino核心代码
编程平台
Mixly库
Mind+库
MakeCode扩展
传感器系列
积木式传感器系列
黑板传感器系列
蓝板传感器系列
Micro:Bit
Micro:Bit 通用基础教程
Valon智能车
Valon-I
帮助
帮助
wiki语法参考
工具箱
链入页面
相关更改
特殊页面
页面信息