资讯动态

Arduino与超声波测距模块学习笔记

发布时间:2026/10/28 1:38:00 来源:尧图企业网站定制
一、模块介绍HC-SR04 为四线制超声波测距模块默认工作在GPIO 脉冲触发模式无需串口、I2C 通信仅通过普通高低电平完成测距。VCC电源正极接 Arduino 5V必须5V3.3V测距异常GND公共地线与 Arduino GND 共地TRIGTrigger触发信号输入引脚英文含义触发、启动由单片机输出脉冲控制模块启动测距ECHOEcho回响信号输出引脚英文含义回声、回音模块反馈声波往返时长给单片机二、原理初始化清零TRIG 先拉低2μs清除引脚残留杂波保证触发信号干净触发启动TRIG 输出 10μs 高电平脉冲模块最低触发标准模块立即发射8组40KHz超声波回响计时发射声波的同时ECHO 引脚自动置高等待声波碰到障碍物反射、模块接收回声后ECHO 自动置低计算距离ECHO 高电平持续时间 超声波 往返总时长通过声速公式换算出实际距离官方要求两次测距间隔必须大于60ms防止残留声波干扰读数。公式1、物理原始公式代码使用distance duration * 0.034 / 2;公式推导空气中声速340 m/s 0.034 cm/μsduration声波往返总时间微秒duration × 0.034声波往返总路程2、只保留模块到障碍物的单程真实距离2、模块手册简化公式等价效果厘米距离(cm) 微秒时长 ÷ 58英寸距离(inch) 微秒时长 ÷ 148两个公式完全等价÷58 是 0.034/2 的近似化简结果日常测距无肉眼误差。三、代码// 定义引脚 const int trigPin 9; const int echoPin 10; // 存储测距数据 long duration; int distance; void setup() { // 串口初始化波特率9600 Serial.begin(9600); // 设置引脚模式 pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { // 1. 清空TRIG引脚 digitalWrite(trigPin, LOW); delayMicroseconds(2);//先把TRIG 拉低 2 微秒 //HC-SR04 模块规则必须给 TRIG 提供10 微秒以上高电平模块才会发射 8 组 40KHz 超声波。 // 2. 发送10us高电平触发超声波发射 digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // 3. 读取ECHO返回高电平持续时间声波往返时间 duration pulseIn(echoPin, HIGH); // 4. 换算距离声速340m/s换算cm公式 distance duration * 0.034 / 2; // 串口打印数据 Serial.print(当前距离); Serial.print(distance); Serial.println( cm); // 每500ms测一次 delay(500); }五、核心知识点总结工作模式纯GPIO脉冲模式无通信协议最基础、最稳定的入门模式核心逻辑TRIG发指令ECHO返时间公式算距离硬性标准触发脉冲必须≥10μs测距间隔必须≥60ms量程限制2cm~400cm超出范围读数失效

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑