SR04超声波测距传感器
模块来源
规格参数
工作电压:5-5.5V
工作电流:5.3MA
感应角度:小于15度
探测距离:2CM-600CM
探测精度:0.1CM+1%
输出方式: GPIO
管脚数量:4 Pin
硬件连接
- VCC:连接到开发板的5V输出。
- Trig(触发):连接到开发板的9号数字输出针脚。
- Echo(回声):连接到开发板的10号数字输入针脚。
- GND:连接到开发板的地(GND)。
使用方法
此代码段首先在trigPin
上生成一个短暂(10微秒)的高电平脉冲来激活HC-SR04开始进行距离测量。然后,测量在echoPin
上接收到的高电平持续时间(从发射到回声返回的时间)。使用这个时间和声速(大约为340 m/s,或者转换为厘米/微秒单位),可以计算出距离,然后通过开发板的串口输出。
c
/******************************************************************************
* 测试硬件:ColorEasyDuino开发板
* 版 本 号: V1.0
* 修改作者: www.lckfb.com
* 修改日期: 2024年04月08日
* 功能介绍:
*****************************************************************************
* 开发板软硬件资料与相关项目软硬件资料官网全部开源
* 开发板官网:www.lckfb.com
* 技术支持常驻论坛,任何技术问题欢迎随时交流学习
* 立创论坛:club.szlcsc.com
* 关注bilibili账号:【立创开发板】,掌握我们的最新动态!
* 不靠卖板赚钱,以培养中国工程师为己任
******************************************************************************/
// 定义连接到传感器的针脚
const int trigPin = 9;
const int echoPin = 10;
// 定义变量来存储测量的持续时间和计算的距离
long duration;
int distance;
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 设置触发针脚为输出,回声针脚为输入
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// 清除触发针脚
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// 设置触发针脚高电平状态持续10微秒
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 读取回声针脚,返回声波往返时间(以微秒为单位)
duration = pulseIn(echoPin, HIGH);
// 计算距离:使用声速(34000厘米/秒)计算距离(往返所以除以2)
distance = duration * 0.034 / 2;
// 将距离发送到串口
Serial.print("Distance: ");
Serial.println(distance);
// 短暂的延迟避免过快刷新
delay(500);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
使用验证
在距离传感器20CM处放置一个障碍物,用开发板测量传感器与障碍物的距离并通过串口输出。