在日常生活中离不开对距离的测量,就测量的手段来讲主要有两种测量方式,一种是直接测量法,另一种则为间接测量法。基于超声波的测量方式就属于间接测量方式,它是通过计算超声波发送与接收发射超声波的时间,进而由时间和超声波传播的速度乘积来得到距离值。
由于该测量方式是非接触式的,故不但能测量两个实体间的距离,还能测量距液体表面的距离等,所以它的应用面很宽,例如用在车载组合仪表上可以测量车体距前后方物体的距离及水箱、油箱的液位等。
目前市面上常见的超声波测距模块是HC_SR04,其相关参数如下:
· 工作电压:5V
· 工作电流:15mA
· 工作频率: 40Hz
· 测距范围:50px~4m
· 测量角度:15度
· 触发信号:10usTTL
· 回声信号:TTL高电平持续时间
超声波测距模块与开发板的连接关系为:
trig ---PB2
ecoh ---PA0
通过对片内计时器TIM5的使用,超声波测距的主程序如下:
1. int main(void)
2. {
3. u32 temp=0;
4. delay_init();
5. OLED_InitI();
6. OLED_ClearI();
7. OLED_ShowStringI(10,0,"HC_SR04TEST",16);
8. OLED_ShowStringI(10,4,"L=",16);
9. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
10. TIM5_Cap_Init(0XFFFF,72-1);
11. while(1)
12. {
13. trig=1;
14. delay_us(20);
15. trig=0;
16. delay_us(20);
17. if(TIM5CH1_CAPTURE_STA&0X80)
18. {
19. temp=TIM5CH1_CAPTURE_STA&0X3F;
20. temp*=65536;
21. temp+=TIM5CH1_CAPTURE_VAL;
22. OLED_ShowNumI(30,4,temp*170/10000,4,16);
23. OLED_ShowStringI(70,4,"cm",16);
24. TIM5CH1_CAPTURE_STA=0;
25. }
26. delay_ms(500);
27. }
28.}
复制代码

超声波测距效果
由于该测量方式是非接触式的,故不但能测量两个实体间的距离,还能测量距液体表面的距离等,所以它的应用面很宽,例如用在车载组合仪表上可以测量车体距前后方物体的距离及水箱、油箱的液位等。
目前市面上常见的超声波测距模块是HC_SR04,其相关参数如下:
· 工作电压:5V
· 工作电流:15mA
· 工作频率: 40Hz
· 测距范围:50px~4m
· 测量角度:15度
· 触发信号:10usTTL
· 回声信号:TTL高电平持续时间
超声波测距模块与开发板的连接关系为:
trig ---PB2
ecoh ---PA0
通过对片内计时器TIM5的使用,超声波测距的主程序如下:
1. int main(void)
2. {
3. u32 temp=0;
4. delay_init();
5. OLED_InitI();
6. OLED_ClearI();
7. OLED_ShowStringI(10,0,"HC_SR04TEST",16);
8. OLED_ShowStringI(10,4,"L=",16);
9. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
10. TIM5_Cap_Init(0XFFFF,72-1);
11. while(1)
12. {
13. trig=1;
14. delay_us(20);
15. trig=0;
16. delay_us(20);
17. if(TIM5CH1_CAPTURE_STA&0X80)
18. {
19. temp=TIM5CH1_CAPTURE_STA&0X3F;
20. temp*=65536;
21. temp+=TIM5CH1_CAPTURE_VAL;
22. OLED_ShowNumI(30,4,temp*170/10000,4,16);
23. OLED_ShowStringI(70,4,"cm",16);
24. TIM5CH1_CAPTURE_STA=0;
25. }
26. delay_ms(500);
27. }
28.}
复制代码

超声波测距效果


