标题: STM32单片机+SHARP 2Y0A21红外测距模块进行测距的源程序 [打印本页]

作者: 51dasttwbd    时间: 2018-7-26 21:00
标题: STM32单片机+SHARP 2Y0A21红外测距模块进行测距的源程序
  通过  SHARP 2Y0A21 红外测距模块  进行 测距  ,  要使用 ADC

  源程序 如下:
/*******************************************************************************
*                 
*                                        普中科技
--------------------------------------------------------------------------------
* 实 验 名                 : ADC转换实验
* 实验说明       : 通过printf打印AD检测数据 ,调节AD模块旁边的电位器 在串口助手上即可输出电压,
                                        见文件内截图
* 连接方式       :
* 注    意                 :         所用函数在头文件.c文件内
*******************************************************************************/


#include "public.h"
#include "printf.h"
#include "adc.h"
#include "systick.h"

int main()
{        
        u16 ad;
        u8 i;
        float adc;  //电压
        float Distance; //距离
        adc_init();         //ADC初始化
        printf_init(); //printf初始化
        while(1)
        {
                //ad = ad>>2;//12位AD转换成10位
                for(i=0;i<50;i++)//读取50次的AD数值取其平均数较为准确        
                {
                        ADC_SoftwareStartConvCmd(ADC1, ENABLE);
                        while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//转换结束标志位
                        ad=ad+ADC_GetConversionValue(ADC1);//返回最近一次ADCx规则组的转换结果               
                }
                ad=ad/50;   //取平均值
               
                adc =(float)ad*(3.3/4096);
                Distance = (1/(ad*(0.0000954)+0.000502))-4;
               
                printf(" 电压值= %f V \n",adc);
                printf(" 测量距离= %f cm \n",Distance );
                delay_ms(10000);                        
        }                        
}


全部资料51hei下载地址:
红外测距.7z (1.4 MB, 下载次数: 283)


作者: k2914    时间: 2018-8-8 16:47
感谢分享!!
作者: Freddy    时间: 2019-2-14 16:11
感谢分享!!
作者: cmxgx    时间: 2019-2-15 00:01
实测得的最长距离有多少?
作者: tyz522762481    时间: 2019-4-12 19:20
在哪里用到了红外测距模块
作者: tyz522762481    时间: 2019-4-12 19:46
有电路连接图吗
作者: ocean9914    时间: 2020-3-9 20:20
感谢分享。谢谢
作者: QEQWE123    时间: 2020-11-14 13:40
好像不对

作者: yyyy99    时间: 2020-12-1 00:01
为什么我的数据不对啊
作者: 小笨拙    时间: 2024-3-19 14:53
看完帖子都是电压  测距在哪里啊
作者: 放屁男孩    时间: 2024-11-3 14:12
小笨拙 发表于 2024-3-19 14:53
看完帖子都是电压  测距在哪里啊

Distance = (1/(ad*(0.0000954)+0.000502))-4;
这个就是电压转化的距离呀




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1