分享

罗姆传感器评估套件(6)接近照度传感器(PS/ALS)RPR-0521RS

 知芯世界 2020-10-28

往期回顾:

罗姆传感器评估套件开箱

罗姆传感器评估套件(2)Sensor Shield的使用和软件平台搭建

罗姆传感器评估套件(3)加速度传感器KX022-1020

罗姆传感器评估套件(4)气压传感器BM1383GLV

罗姆传感器评估套件(5)地磁传感器BM1422GMV

传感器介绍
套件里的PS/ALS传感器型号为RPR-0521RS,是一个整合了红外LED,接近传感器(这两者用于接近检测),照度传感(这个用于检测环境光强度)为一体的高集成传感器。

这个组件在智能手机中尤其重要:接近传感用于检测手机是否贴着人体,例如在接听电话时熄灭屏幕,手机在口袋中就防止误触等;环境光传感器用于检测环境亮度,从而调整显示屏亮度,使显示清晰舒适,又可以节约电量。

硬件连接
传感器芯片是下图中的U9,可以看到发射窗和接收窗。

这个传感器是I2C接口,工作电压为2.8-3.6V,这里用3.3V。

手机摄像头可以“看到”肉眼不可见的红外LED发射的光(图中红色光点)。

测试
测试程序:

  1. #include <Wire.h>

  2. #include <RPR-0521RS.h>

  3. RPR0521RS rpr0521rs;

  4. void setup() {

  5.   byte rc;

  6.   Serial.begin(9600);

  7.   while (!Serial);

  8.   Wire.begin();

  9.   rc = rpr0521rs.init();

  10. }

  11. void loop() {

  12.   byte rc;

  13.   unsigned short ps_val;

  14.   float als_val;

  15.   byte near_far;

  16.   rc = rpr0521rs.get_psalsval(&ps_val, &als_val);

  17.   if (rc == 0) {

  18.     Serial.print(F("RPR-0521RS (Proximity)     = "));

  19.     Serial.print(ps_val);

  20.     Serial.print(F(" [count]"));

  21.     near_far = rpr0521rs.check_near_far(ps_val);

  22.     if (near_far == RPR0521RS_NEAR_VAL) {

  23.       Serial.println(F(" Near"));

  24.     } else {

  25.       Serial.println(F(" Far"));

  26.     }

  27.     if (als_val != RPR0521RS_ERROR) {

  28.       Serial.print(F("RPR-0521RS (Ambient Light) = "));

  29.       Serial.print(als_val);

  30.       Serial.println(F(" [lx]"));

  31.       Serial.println();

  32.     }

  33.   }

  34.   delay(500);

  35. }

复制代码


首先测试接近传感器
没有遮挡时,接近传感器读数为0,提示far(远)

用手逐渐靠近传感器,距离5cm时,读数有50左右,还是显示Far

靠近到1cm以内,显示Near(近),表示已经检测到接近

接下来测试环境光传感部分。
挡住传感器,一片漆黑,显示0.00lx

灯光下,170+lx

强光照射下:33.55k lx,并没有“爆表”。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多