模块数据:
1. 工作电压:5V
2. 静态电流:<2mA
3. 探测距离:2~450cm
4. 引脚:VCC、Trig、Echo、GND
VCC接电源正极
GND接电源负极
Trig是传感器触发信号输入引脚
Echo是传感器测距数据输出引脚
工作原理:
单片机向模块的Trig引脚发出至少10μs的高电平信号以触发传感器测距。模块自动发送8个40kHz的方波,模块自动检测是否有信号返回。
当有信号返回时,通过IO输出一高电平,该高电平持续的时间就是超声波从发射到返回的时间。时间单位 一般为微秒(μs),声速约为344m/s,
则可推导
测试距离(m)= [高电平时间(μs)×10^(-6)×声速(344m/s)]/2
= 高电平时间(μs)×172/10^6
此时的测试距离的单位为米,转换为厘米则
测试距离(cm)= 高电平时间(μs)×172/10^6×100
= 高电平时间(μs)/58
实验例程:
1 const int Echo = 3; 2 const int Trig = 4; 3 float distance; 4 void setup(){ 5 Serial.begin(9600); 6 pinMode(Trig,OUTPUT); 7 pinMode(Echo,INPUT); 8 } 9 void loop(){ 10 digitalWrite(Trig,LOW); 11 delayMicroseconds(2); 12 digitalWrite(Trig,HIGH); 13 delayMicroseconds(10); 14 digitalWrite(Trig,LOW); 15 16 distance = pulseIn(Echo,HIGH) / 58.0; 17 distance = ((int)distance*100.0) / 100.0; 18 Serial.println(distance); 19 delay(100); 20 }