从基本的角度来看,距离测量传感器是一种传感器,它在目标物体上输出信号,并读取反射信号返回时的变化情况。
然后可以根据反射信号返回所需的时间或通过测量反射信号的强度水平来测量信号变化。
常用的距离测量传感器是:
超声波距离传感器
激光距离传感器
红外距离传感器
飞行时间 (ToF) 传感器
飞行时间 (ToF) 传感器是一种非常有效的测距和距离感测传感器,因为它发出光而不是声音。基本上,ToF 距离传感器利用光子在两点之间传播所需的时间来计算两点之间的距离,即从传感器的发射器到目标,然后返回到传感器的接收器。
直接 ToF 传感器发出仅持续几纳秒的短光脉冲,然后测量部分发射光返回所需的时间,而间接 ToF 传感器则传输连续的调制光并测量反射光的相位。光来计算到物体的距离。
主要特点
距离测量范围:10至80cm
电源电压:4.5V 至 5.5V
电流消耗:30mA(典型值)
输出信号:模拟电压
输出电压Vo(L=80cm):0.25V至0.55V(0.4V典型值)
输出电压差 ΔVo(L–10cm 和 L–80cm):1.6V 至 2.15V(1.9V 典型值)
距离测量特性示例(输出)
由于根据反射光入射角计算到物体的距离涉及三角学,因此该传感器的输出相对于测量的距离是非线性的。下图显示了模拟输出电压与反射物体距离的数据表示例。
这里需要注意的一个有趣的事情是,在规定范围内传感器的输出不是线性的,而是有点对数,并且不同传感器的曲线会略有不同。
一旦物体接近距离(<10cm),输出电压也会迅速下降。因此,输出可能会与较长距离的读数相混淆,这在某些机器人应用中可能是致命的。
实用距离测量
为了获得常见的毫米/厘米/英寸单位的距离值,我们必须导出一个将传感器输出电压转换为距离值的函数。
此外,在线性化测距仪数据时,有一些简单的计算可??以线性化夏普距离测量传感器的响应。
以下是测试期间观察到的近似输出电压读数。
0厘米=0V
10厘米=2.5V
15厘米=1.8V
20厘米=1.1V
30厘米=0.8V
50厘米=0.6V
80厘米=0.2V
正如所注意到的,我所测试的中国 2Y0A21 传感器的输出电压在 5 厘米距离处约为 3.1V(就在它突然降至零之前)。
使用 FNIRSI-2C23T 双通道示波器万用表测量电压。
注:2Y0A21 红外传感器采用 JST(日本无焊端子)连接器,具有三根线 - GND、Vcc 和 Vo(黑色、红色和黄色)。制造商建议在 Vcc 和传感器附近的接地点之间使用 10μF 或更大的旁路电容器。
还有一些相关的评论。首先,在我的实际实验中,如果没有上述旁路电容器,测量结果会非常嘈杂。
其次,添加可选的低通滤波器来抑制潜在的高频噪声分量似乎非常好。所以我制作了一个小适配器电路来帮助顺利进行。
请参阅下面经过验证的适配器电路图。
下面给出了用于获取测量数据 (Vo) 的简单 Arduino 草图。
[代码]
int
传感器输入 = A0; //传感器Vo到Uno A0
浮点
传感器值=0;
浮点
传感器电压=0;
浮点
Vrf = 5.0;
浮点
总和=0;
无效
设置(){
串行.开始(9600);
}
无效
循环(){
总和=0;
for (int i = 0; i < 100; i++)
{
sum = sum + float(analogRead(sensorIn));
}
传感器值=总和/100;
传感器电压 = 传感器电压 * Vrf / 1024;
Serial.println(sensorVolt);
延迟(500);
}