超声波模块HC-SR04

                       

超声波测距工作原理

可以听到的声波:振动频率为20Hz~20000Hz

超声波:频率高于20000赫兹的声波

超声波特性:指向性强,能量消耗缓慢,在介质中传播的距离较远,经常用于距离的测量

超声波测距原理:超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s=340t/2 。

模块主要技术参数

使用电压:DC---5V,静态电流:小于2mA  

电平输出:高5V,低0V 

感应角度:不大于15度,探测距离:2cm--450cm

高精度 可达0.2cm   

模块引脚说明

VCC:供5V电源,GND:地线

TRIG:触发控制信号输入端,ECHO:回响信号输出端

测距时,用控制板给TRIG端输入脉冲信号,用ECHO端计算发射到回波的时间

系统接线

 

TRIG:接控制板2号引脚,ECHO:接控制板3号引脚,

VCC和GND分别接控制板5V和GND。

程序设计

 1 #define Trig 2    //引脚Tring 连接 IO D2  
 2 #define Echo 3     //引脚Echo 连接 IO D3   
 3 float cm;   //距离变量
 4 float temp;
 5 
 6 void setup() 
 7 {
 8     Serial.begin(9600);
 9     pinMode(Trig, OUTPUT);
10     pinMode(Echo, INPUT); 
11 }
12 
13 void loop() 
14 {
15     //给Trig发送一个低高低的短时间脉冲,触发测距
16     digitalWrite(Trig, LOW);   //给Trig发送一个低电平
17     delayMicroseconds(2);     //等待2微妙
18     digitalWrite(Trig,HIGH);    //给Trig发送一个高电平 
19     delayMicroseconds(10);    //等待10微妙
20     digitalWrite(Trig, LOW);   //给Trig发送一个低电平
21     temp=float(pulseIn(Echo,HIGH));  //存储回波等待时间,pulseIn()返回脉冲的高电平时间长度,单位是微秒
22     //pulseIn函数会等待引脚变为HIGH,开始计算时间,再等待变为LOW停止计时  
23     //声速是340m/1s,换算成34000cm/1000000μs=34/1000 
24     //距离(厘米)=(回波时间*(34/1000))/2=回波时间*17/1000
25     cm=(temp*17)/1000;   //把回波时间换算成cm 
26     Serial.print("Echo="); 
27     Serial.print(temp);  //串口输出等待时间  
28     Serial.print("|| Distance="); 
29     Serial.print(cm);   //串口输出距离
30     Serial.println("cm");
31     delay(100);
32 }