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
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!