22.距离传感器
一、功能以及原理
AP3216C 模块的核心就是这个芯片本身。这颗芯片集成了光强传感器(ALS:AmbientLight Sensor),接近传感器(PS: Proximity Sensor),还有一个红外 LED(IR LED)。这个芯片设计的用途是给手机之类的使用,比如:返回当前环境光强以便调整屏幕亮度;用户接听电话时,将手机放置在耳边后,自动关闭屏幕避免用户误触碰。

二、引脚介绍以及对应开发板可用引脚
针脚 | 可连接引脚 | 功能 |
VLED | 5V | IR LED的供电,IR LED 电流最高为 20ma。使用 3.3v给模块和IR LED 同时供电时,在IR LED 上串联了一个200欧姆的电阻,这样保证电流不会超过20ma。 |
GND | GND | 接地极 |
VCC | 5V | 当光照强度到达某个阀值时,输出高低电平信号 |
SCL | SCL(A5) | 输出时钟信号 |
SDA | SDA(A4) | 双向数据线,用于主机和从机传输信号 |
INT | 无 | INT 中断输出,可以通知 Arduino有数据。对于轮询,无需使用。 |
三、代码控制
控制 AP3216C 模块测量距离、光照和红外线强度,需要 AP3216_WE.h 库文件,下面示例代码能够读取环境光强度(HLS)、接近距离(PS)以及调整红外线强度(IR)
3.1 文本代码
#include <Wire.h>
#include <AP3216_WE.h>
AP3216_WE myAP3216 = AP3216_WE();
void setup() {
Serial.begin(9600);
Wire.begin();
myAP3216.init();
myAP3216.setMode(AP3216_RESET);
myAP3216.setLuxRange(RANGE_20661);
myAP3216.setNumberOfLEDPulses(3);
}
void loop() {
Serial.println(myAP3216.getAmbientLight());
Serial.println(myAP3216.getProximity());
Serial.println(myAP3216.getIRData());
Serial.println(myAP3216.objectIsNear());
Serial.println(myAP3216.irDataIsOverflowed());
delay(2 * 1000);
}
3.2 图形化代码
可在“传感器”中的“距离传感器”,找到对应的图形化代码块。


3.3 结果
编写完控制程序,模拟运行后,单击元器件能够修改传感器感知数值


四、相关案例演示
正在开发中
五、相关课程链接
正在开发中