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);
}
上一篇下一篇

猜你喜欢

热点阅读