HC-SR04 超声波传感器使用教程

Arduino连接超声波传感器测距


超声波传感器适用于对大幅的平面进行静止测距。普通的超声波传感器测距范围大概是2cm-450cm,分辨率3mm(测试环境没那么好,个人实测比较稳定的距离10cm-2m左右,超过此距离就经常有偶然不准确的情况发生了,当然不排除技术问题。)

测试对象是SRF-04超声波传感器,有四个脚:5v电源脚(Vcc),触发控制端(Trig),接收端(Echo),地端(GND)

模块使用方法
使用本模块,占用单片机的两个IO口,一个IO口做为触发端。一个IO口做为回波PWM信号捕捉引脚。写程序时,先在TXD引脚端为8个40K周期电平,程序处理变换成一个PWM的信号从RXD引脚输出,一旦检测到有回波信号则输出回响信号,供我们方便使用。我们使用时,只需读出的低电平时间(T)。回响信号是一个脉冲的宽度成正比的距离对象。可通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式: uS/58=厘米或者uS/148=英寸。也可以通过声波在空气中传播公式L=340T/2。就可以求出L(测量的距离)。如果没有检测到回响信号,模块回响信号脚将输出约140uS的电平,以防止发射信号对回响信号的影响。


模块工作原理: 

采用IO触发测距,给至少10us的高电平信号;

模块自动发送8个40HKz的方波,自动检测是否有信号返回;

有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*声速(340m/s))/2


电路连接方法
 


Arduino程序例子:

const int TrigPin = 2
const int EchoPin = 3
float cm; 
void setup() 

Serial.begin(9600); 
pinMode(TrigPin, OUTPUT); 
pinMode(EchoPin, INPUT); 

void loop() 

digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin 
delayMicroseconds(2); 
digitalWrite(TrigPin, HIGH); 
delayMicroseconds(10); 
digitalWrite(TrigPin, LOW); 

cm = pulseIn(EchoPin, HIGH) / 58.0//将回波时间换算成cm 
cm = (int(cm * 100.0)) / 100.0//保留两位小数 
Serial.print(cm); 
Serial.print("cm"); 
Serial.println(); 
delay(1000); 



TAG: ESP32-S3开发板4寸LCD显示触摸屏 480x480 86盒中控兼容Arduino LVGL TVbox SHT20温湿度 继电器 RS485 工业级USB转RS232/485/422/TTL多功能串口转换器FT4232HL 树莓派Pico GPS扩展板L76K北斗(BDS)A-GNSS GLONASS GLONASS QZSS 树莓派X630转接板 兼容HDMI转CSI-2模块 支持音视频 1080p60fps 可编程舵机 使用手册 PCIE M.2 NVME双SSD固态硬盘 TTL转CAN X1008树莓派5 PCIe转2.5寸3.5寸SATA HDD/SSD双硬盘扩展板 树莓派Pico显示屏1.54寸LCD模块 240×240像素 树莓派 远红外摄像头 热像仪传感器模块 80×62像素 45/90度 Raspberry Pi摄像头 树莓派X850 ESP32 S3开发板1.64寸AMOLED显示屏触摸SD槽6轴传感器兼容Arduino USB摄像头500万IMX335 2K 无畸变 低光性好 宽动态范围 树莓派 四驱小车 树莓派摄像头 360°激光雷达 电子相册