Arduino程序,超声波测距,超出距离触发蜂鸣器和LED灯
2023-07-31 本文已影响0人
蓝不蓝编程
const int TrigPin = 8; //设置发射引脚为8号引脚
const int EchoPin = 9; //设置接收引脚为9号引脚
const int BuzzerPin = 7; // 设置蜂鸣器IO引脚
const int LED_R = 6; // 设置LED R灯引脚
void setup() {
Serial.begin(9600); //开启串口通讯,设置波特率为9600
pinMode(TrigPin, OUTPUT); //将发射引脚初始化为输出模式
pinMode(EchoPin, INPUT); //将接收引脚初始化为输入模式,用于接收传感器的数据
pinMode(BuzzerPin, OUTPUT);
pinMode(BuzzerPin, LED_R);
}
void loop() {
digitalWrite(TrigPin, LOW); //用低高低的电平发送脉冲给发射引脚
delayMicroseconds(2); //短暂延时,1000微妙=1毫秒
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
float timeCost = pulseIn(EchoPin, HIGH); //单位:微秒
// 声音的速度340m/s,等价于0.034cm/us
float distance = timeCost * 0.034 / 2; //计算距离(单位:cm),声音是往返,所以除以2
Serial.print(distance); //距离
Serial.print("cm"); //单位
Serial.println(); //回车
//如果距离大于50cm,就触发蜂鸣器
if (distance > 50) {
digitalWrite(BuzzerPin, HIGH);
} else {
digitalWrite(BuzzerPin, LOW);
}
//如果距离大于50cm,就亮红灯
if (distance > 50) {
digitalWrite(LED_R, 100);
} else {
digitalWrite(LED_R, LOW);
}
delay(1000);
}