利用超声波传感器 (HC-SR04模块)设计一款超声波测距离电 路,要求:用单片机学习板和HC-SR04超声波模块进行设计,数码管显示被测物距离,当距离少于某个设定值(设定值可调》时通过 LED或蜂鸣器发出提示。请制作实际电路并调试出功能。打代码
时间: 2024-02-23 22:59:17 浏览: 17
以下是使用Arduino单片机学习板和HC-SR04超声波模块进行设计的超声波测距离电路的代码实现。需要连接数码管、LED或蜂鸣器等元件,并安装相应的库。
```
#include <SevSeg.h>
const int trigPin = 7;
const int echoPin = 6;
const int ledPin = 5;
const int buzzerPin = 4;
const int numDigits = 4;
const int digitPins[] = {9, 10, 11, 12};
const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 0};
SevSeg sevseg;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins, false);
sevseg.setBrightness(100);
sevseg.setNumber(0);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
if (distance < 50) { // 当距离小于50cm时
digitalWrite(ledPin, HIGH); // 打开LED灯
tone(buzzerPin, 1000, 1000); // 发出警报声
} else {
digitalWrite(ledPin, LOW); // 关闭LED灯
noTone(buzzerPin); // 停止发出声音
}
sevseg.setNumber(distance);
sevseg.refreshDisplay();
delay(100);
}
```
该代码实现的功能为:使用HC-SR04超声波模块测量被测物距离,并将距离显示在数码管上。当距离小于50cm时,打开LED灯并发出警报声。使用SevSeg库来控制数码管,使用tone函数来发出警报声。