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

往期回顾:

罗姆传感器评估套件开箱

罗姆传感器评估套件(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)

相关推荐