HC-SR04测距
2020-09-05 | 253 字 | 1 分钟
简介
数据手册可与此处下载。
时序

- TRIG端口触发测距,需保持至少10us的高电平信号
- 模块自动发送8个40khz的方波,自动检测是否有信号返回
- 有信号返回时,通过ECHO输入高电平,高电平的时间即为超声波传播的时间
- 注意测量周期需要大于60ms避免两次信号之间的干扰;同时需要设置测量时间溢出避免无法检测到信号时单片机的未响应。
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| void sr04_measure() { uint time=0; trg=1; delay_10us(); trg=0; while(echo==0); TR0=1; while(echo==1&&TF0==0); TR0=0; if(TF0==1) { TF0=0; TH0=TL0=0; distance=999; } else { time=TH0*256+TL0; TH0=TL0=0; distance=(time*1.7)/100; } }
void main() { init_sys(); init_timer0(); init_timer1(); while(1) { if(flag_200ms) { flag_200ms=0; sr04_measure(); } } }
|
本文标题:HC-SR04测距
文章作者:Raincorn
发布时间:2020-09-05
最后更新:2020-09-05
原始链接:https://blog.raincorn.top/2020/09/05/8051_HC_SR04/
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可