HC-SR04超声波测距模块
HC-SR04超声波测距模块可提供2cm至400cm的非接触式距离感测功能,测距精度可达3mm;模块自身包括超声波发射器、接收器与控制电路。
实物正反两面图
HC-SR04电气参数:
HC-SR04工作原理及说明:
1、 给Trig触发控制信号IO端口至少10us的高电平信号;
2、 模块自动发送8个40khz的方波,并自动检测是否有信号返回;
3、 有信号返回时,Echo回响信号输出端口输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间;
4、 两次测距时间间隔最少在60ms以上,以防止发射信号对回响信号的影响;
超声波时序图
单片机控制HC-SR04超声波测距说明:
原理图中,单片机的P1.7口接HC-SR04的Trig端口,P1.6口接HC-SR04的Echo端口,超声波在传播时碰到障碍物即返回,HC-SR04模块收到回波信号后Echo口输出一个高电平,单片机检测到高电平后即启动计数器开始计数,直到单片机检测到Echo口变成低电平后结束计数,计数器的计数值乘以单片机计数周期就是超声波从发射到接收的往返时间,即距离S=v*t/2;
以下是实现代码:
1 #include <OLED12864.H> 2 #include <stdio.h> 3 unsigned long record; 4 unsigned int number_1; 5 char Display[10]; 6 /*P17 HC-SR04触发信号输入,P16 HC-SR04回响信号输出*/ 7 void delay_10us(unsigned int i)//约延时10us 8 { 9 while(i--); 10 } 11 //主函数 12 void main(void) 13 { 14 LCD_Init();//显示屏初始化 15 while(1) 16 { 17 TMOD=0x10; 18 TH1=0x00; 19 TL1=0x00; 20 /*触发超声波测距*/ 21 P17=0; 22 P17=1; 23 delay_10us(2); 24 P17 = 0; 25 while (!P16) 26 { 27 TR1 = 0; 28 } 29 while (P16) 30 { 31 TR1 = 1; 32 } 33 number_1=TH1*256+TL1; 34 record =(unsigned long)(number_1*0.17+20); 35 } 36 }
来源:E小电