Arduino与Proteus仿真实例-HC-SRF04超声波测距仿真

HC-SRF04超声波测距仿真

HC-SR04 超声波 (US) 传感器是一种超声波换能器,带有 4 针接口,称为 Vcc、触发器、回声和接地。 它对于目标物体的精确距离测量非常有用,主要作用于声波。

在前面的文章中,对HC-SRF04做了详细的介绍,请参考:

1、仿真电路原理图

在这里插入图片描述

2、仿真代码实现

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

// 定义引脚
const int trigPin = 8;
const int echoPin = 7;
const int ledPin = LED_BUILTIN;

long duration;
int distanceCm;

void setup() {
// 设置引脚
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin,OUTPUT);

Serial.begin (9600);
}

void loop() {

// 传感器由10毫秒或更长时间的HIGH脉冲触发。
// 事先给一个短的LOW脉冲以确保一个干净的HIGH脉冲
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);


// 读取来自传感器的信号:高脉冲,
// 其持续时间是从发出ping到接收到对象的回声所经过的时间(以微秒为单位)。
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);

// 计算距离(厘米)
distanceCm = (duration/2) / 29.1; // 除以29.1或乘以0.0343,相当声波在空所中每秒传播的速度

// 判断物体是否靠近
if(distanceCm <= 15.0){
digitalWrite(ledPin,HIGH);
}else{
digitalWrite(ledPin,LOW);
}

Serial.print(distanceCm);
Serial.print("cm");
Serial.println();

delay(250);
}


3、仿真结果

在这里插入图片描述

文章来源: https://iotsmart.blog.csdn.net/article/details/121732997