一段Arduino的代码,它实现了一个基于超声波测距的功能,当距离小于一定值时,LED灯和蜂鸣器会发出警报。同时,还有一个按键可以手动触发警报。
时间: 2024-02-21 13:56:38 浏览: 67
这是一段可能实现超声波测距的Arduino代码示例:
```c++
const int trigPin = 9; //超声波发射引脚
const int echoPin = 10; //超声波接收引脚
const int ledPin = 13; //LED指示灯引脚
const int buzzerPin = 8; //蜂鸣器引脚
const int buttonPin = 7; //按键引脚
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); //使用内部上拉电阻
Serial.begin(9600);
}
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; //计算距离
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance < 10 || digitalRead(buttonPin) == LOW) { //距离小于10cm或按键按下
digitalWrite(ledPin, HIGH); //点亮LED
digitalWrite(buzzerPin, HIGH); //蜂鸣器发声
delay(500); //延时0.5秒
digitalWrite(ledPin, LOW); //熄灭LED
digitalWrite(buzzerPin, LOW); //关闭蜂鸣器
delay(500); //延时0.5秒
}
}
```
其中,trigPin和echoPin分别连接超声波模块的发射和接收引脚,ledPin和buzzerPin分别连接LED指示灯和蜂鸣器,buttonPin连接按键引脚。在循环中,先发送超声波信号,然后等待接收信号并计算距离,最后判断距离是否小于10cm或按键是否按下,如果是则触发警报。
阅读全文