爱板网论坛

查看: 1806|回复: 1

[GD32F450方案分享] 用模拟信号输出的传感器做一个测距仪

[复制链接]

4

主题

0

好友

567

积分

举人

Rank: 4

  • TA的每日心情
    无聊
    2016-10-8 20:34
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2017-6-19 02:20:53 |显示全部楼层
    本帖最后由 杨肉师傅 于 2017-6-19 02:29 编辑

    做一个测距仪,需要几部分:
    1、信号采集;
    2、信号转换成距离;
    3、将距离显示出来;


    详细过程如下:
    1、信号采集,
    这次在网上分别买了超声测距、红外测距、激光测距的模块,一直放那里没有试,等需要用的时候,发现就红外测距的模块有几根线,可以直接插到板子上用,那么就用红外测距模块了;
    红外测距模块的型号是SHARP GP2D12,输出的信号是模拟电压信号,电压值跟距离有关,那么用板子采集分析这个电压,就能得到距离;分析模拟电压,需要用到ADC。

    GP2D12.png
    GP2D12输出曲线.png

    2、信号换算成距离,
    ADC得到AD转换后的数据,但是跟距离还没有关联起来,需要用一个公式将ADC输出数据换算成一个距离值;这个模块的测程大概是10cm到80cm的样子,测了4组数据,分别是20cm、40cm、60cm、80cm距离时候的ADC输出值,将这四组数据拟合一个曲线出来,就可以得到全测程的距离计算公式了;实际拟合的时候用的是指数函数。

    测了4组数据.png
    拟合结果.png

    3、距离显示,
    用串口显示,也可以用LCD显示,这里用了串口在调试的时候显示,调好了用OLED显示。

    显示.png
    显示.JPG


    测试:
    1.    while (1)
    2.    {
    3.         static uint8_t i;
    4.         uint16_t adc_data;
    5.         float m;
    6.         uint8_t d;
    7.         uint8_t d_lcd[2] = {0};
    8. //        printf("\r\ntest%3d",i++);
    9.         bsp_led_on(LED4);
    10.         delay_ms(100);
    11.         bsp_led_off(LED4);
    12.         delay_ms(800);
    13.         adc_data = adc_regular_data_read(ADC1);
    14.         
    15.         m = 160700 * pow(adc_data,-1.097);
    16.         d = (uint8_t)m;
    17.         
    18.         printf("\r\n%3d,adc:%5d,%2dcm",i++,adc_data,d);
    19.         
    20.         sprintf((char*)d_lcd,"%2d",d); // 打印到数组
    21.         OLED_ShowString(0,0,"D:",16);
    22.         OLED_ShowString(16,0,d_lcd,16);
    23.         OLED_ShowString(32,0,"cm",16);
    24.         adc_software_trigger_enable(ADC1,ADC_REGULAR_CHANNEL);
    25.         
    26.    }
    复制代码
    用一根20cm杜邦线做参考,能测出距离,抬高一点点,能反应过来;测的距离感觉不太准,还需要完善。

    20cm杜邦线

    20cm杜邦线

    抬高一点点

    抬高一点点


    程序不用文字贴了,keil工程在附件里
    [url=]7,rangefinder.rar[/url]

    7,rangefinder.rar

    449.44 KB, 下载次数: 18

    回复

    使用道具 举报

    28

    主题

    0

    好友

    299

    积分

    秀才

    Rank: 3Rank: 3

    该用户从未签到

    发表于 2017-6-30 16:12:16 |显示全部楼层
    可以的
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /2 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-11-18 03:25 , Processed in 0.171032 second(s), 12 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部