【GD32E230】GP2Y0A02YK0F 红外激光测距传感器 避障测距20-150cm

文章结尾有移植好的文件可以直接下载

2.4 红外测距传感器
GP2Y0A02YKOF是夏普的一款距离测量传感器模块。它由PSD(position sensitive detector)和IRED(infrared emitting diode)以及信号处理电路三部分组成。由于采用了三角测量方法,被测物体的材质、环境温度以及测量时间都不会影响传感器的测量精度。传感器输出电压值对应探测的距离。通过测量电压值就可以得出所探测物体的距离,所以这款传感器可以用于距离测量、避障等场合。

2.4.1 模块来源

采购链接:

GP2Y0A02YK0F 红外激光测距传感器 避障测距20-150cm

资料下载链接:

「红外测距传感器GP2Y0A02YK0F.rar」

2.4.2 规格参数
工作电压:3.3-5V
工作电流:33MA
模块尺寸:37 x 21.6mm
输出方式: 模拟量输出
读取方式:ADC
管脚数量:3 Pin

2.4.3 移植过程
我们的目标是在【立创开发板GD32E230C8T6】上能够判断前方障碍物的功能。首先要获取资料,查看数据手册应如何实现,再移植至我们的工程。
2.4.3.1 查看资料
红外测距传感器的输出是非线性的。每个型号的输出曲线都不同。所以,在实际使用前,最好能对所使用的传感器进行一下校正。对每个型号的传感器创建一张曲线图,以便在实际使用中获得真实有效的测量数据。下图是测距距离为20-150CM型号的输出曲线图。

在这里插入图片描述
从上图中,可以看到,当被探测物体的距离小于大约 15cm 的时候,输出电压急剧下降,也就是说从电压读数
来看,物体的距离应该是越来越远了。但是实际上并不是这样的,想象一下,你的机器人本来正在慢慢的
靠近障碍物,突然发现障碍物消失了,一般来说,你的控制程序会让你的机器人以全速移动,结果就是,"
砰"的一声。当然了,解决这个方法也不是没有,这里有个小技巧。只需要改变一下传感器的安装位置,使
它到机器人的外围的距离大于最小探测距离就可以了。
在这里插入图片描述

红外测距传感器的输出数据线是通过电压的变化来确定距离,我们可以使用ADC功能获取传感器的电压变化,将其转换为实际距离即可。电压距离转换公式见官方代码库链接:https://github.com/zoubworldArduino/ZSharpIR
找到我们20-150CM型号的传感器,在下方有换算公式。在这里插入图片描述
2.4.3.2 引脚选择
在这里插入图片描述
2.4.4 移植验证
在自己工程中的main主函数中,编写如下。

 /******************************************************************************
   * 测试硬件:立创开发板·GD32E230C8T6    使用主频72Mhz    晶振8Mhz
   * 版 本 号: V1.0
   * 修改作者: www.lckfb.com
   * 修改日期: 2023年11月02日
   * 功能介绍:      
   *****************************************************************************

  ******************************************************************************/
#include "gd32e23x.h"
#include "systick.h"
#include "bsp_usart.h"
#include "stdio.h"
#include "bsp_irdistance.h"

int main(void)
{
    systick_config();                //滴答定时器初始化 1ms

    usart_gpio_config(115200U);
    ADC_DMA_Init();
    printf("ADC+DMA demo start\r\n");
    while(1)
    {
        printf("Distance = %.2f\r\n", Get_IRdistance_Distance() );
        
        delay_1ms(1000);
    }
}

上电效果:在这里插入图片描述

移植成功案例:

「立创开发板GD32E230C8T6_红外测距传感器模块移植成功案例.zip」

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值