查看: 17039|回复: 5

[其他] 分享sharpIR夏普红外测距传感器库GP2Y0A710K0F

[复制链接]

该用户从未签到

发表于 2017-12-5 15:30 | 显示全部楼层 |阅读模式
本帖最后由 MACE 于 2017-12-5 15:34 编辑

买了两个sharp红外测距传感器GP2Y0A710K0F(100-550cm)和gp2y0a02yk_e(20-150cm),买回来看到论坛中的帖子,距离的转换曲线有点复杂,就扔边上了。前天没事干就晚上搜了搜,居然找到了一个库函数,支持4种夏普的红外测距传感器。作者介绍说,他说肯据官方文档中的曲线做的拟合,精度我也不会测,接上线下载程序,觉得还是不错的,对于检测人的有无,及距离还是够用的。库中采样次数25次,中值滤波取中间值。传感器的电源和地之间串接440uF电容,用来稳定电源电压。
支持4种sharpIR传感器的读取,在示例程序中做相应的修改:
GP2Y0A02YK0F --> "20150"
GP2Y0A21YK --> "1080"
GP2Y0A710K0F --> "100500"
GP2YA41SK0F --> "430"

kittenblock中小学创客名师推荐的图形化编程软件

//SHARP IR 红外测距模块测试GP2Y0A710K0F(100-550cm)
#include <SharpIR.h>

#define ir A0    //模拟输入引脚
#define model 100500     //传感器型号
// ir: the pin where your sensor is attached
// model: an int that determines your sensor:  1080 for GP2Y0A21Y
//                                            20150 for GP2Y0A02Y
//                                            100500 for GP2Y0A710K0F
//                                            430   for  GP2YA41SK0F
//                                            (working distance range according to the datasheets)

SharpIR SharpIR(ir, model);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  delay(500);   

  unsigned long pepe1=millis();  // takes the time before the loop on the library begins

  int dis=SharpIR.distance();  // this returns the distance to the object you're measuring


  Serial.print("Mean distance: ");  // returns it to the serial monitor
  Serial.println(dis);
  
  unsigned long pepe2=millis()-pepe1;  // the following gives you the time taken to get the measurement
  Serial.print("Time taken (ms): ");
  Serial.println(pepe2);  

}



库的官方下载地址:https://github.com/guillaume-rico/SharpIR


SharpIR-master.zip

4.91 KB, 下载次数: 95

  • TA的每日心情
    慵懒
    2017-3-27 10:47
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2017-12-5 15:48 | 显示全部楼层
    请问,这个测距做出来过吗,测量精度能达到多少?

    该用户从未签到

     楼主| 发表于 2017-12-5 20:47 | 显示全部楼层
    xiebb5688 发表于 2017-12-5 15:48
    请问,这个测距做出来过吗,测量精度能达到多少?

    我没具体对比啊,只是人站在传感器前不同位置试了试,要不你看下他写的这个http://www.arduino.cn/thread-3782-1-1.html
  • TA的每日心情
    慵懒
    2017-3-27 10:47
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2017-12-7 10:30 | 显示全部楼层
    MACE 发表于 2017-12-5 20:47
    我没具体对比啊,只是人站在传感器前不同位置试了试,要不你看下他写的这个http://www.arduino.cn/thread ...

    不错,谢谢。
    看完之后感觉红外测距其实也不太准。

    该用户从未签到

    发表于 2017-12-10 15:41 | 显示全部楼层
    请问这个如何做到多个红外模块的共用?

    该用户从未签到

     楼主| 发表于 2017-12-11 16:14 | 显示全部楼层
    bailang 发表于 2017-12-10 15:41
    请问这个如何做到多个红外模块的共用?

    这个传感器是模拟输出的,直接接到arduino的模拟输入引脚,然后库函数生成不同的实例对应不同的AD口,也可以直接用原作者的拟合曲线公式,
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    为拍月亮而生的便携望远镜系统。
    为拍月亮而生的便携望远镜
    参赛项目: 便携望远镜系统 参赛组员: 1人 布丁:嵌入式软件、上位机软件、电路、结
    基于机器视觉的智能分拣机械臂
    基于机器视觉的智能分拣机
    本作品是一个基于机器视觉的智能机械臂操作平台,其采用atmega32单片机作为主控制系统
    小白求助
    小白求助
    也许我这个问题也许看起来有些幼稚。。。 还在入门的路上打滚,在看《爱上Arduino》这
    SpiderRobot 蜘蛛
    SpiderRobot 蜘蛛
    关于SpiderRobot 项目实行方案 之前有人推荐我做这个项目,于是乎就有了这个 h
    没有合适的模块,想到自己焊接芯片
    没有合适的模块,想到自己
    有些模块没有加工过的模块销售,想着自己要是能把芯片焊在一起也是一样的。只是这个尺
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表