通過 SHARP 2Y0A21 紅外測距模塊 進行 測距 , 要使用 ADC
串口助手截圖.png (41.14 KB, 下載次數: 35)
下載附件
2024-3-19 15:02 上傳
源程序 如下:
/*******************************************************************************
*
* 普中科技
--------------------------------------------------------------------------------
* 實 驗 名 : 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)
2024-3-19 15:02 上傳
點擊文件名下載附件
紅外測距 下載積分: 黑幣 -5
|