美文网首页
Arduino程序,超声波测距,超出距离触发蜂鸣器和LED灯

Arduino程序,超声波测距,超出距离触发蜂鸣器和LED灯

作者: 蓝不蓝编程 | 来源:发表于2023-07-31 22:38 被阅读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);
    }
    

    相关文章

      网友评论

          本文标题:Arduino程序,超声波测距,超出距离触发蜂鸣器和LED灯

          本文链接:https://www.haomeiwen.com/subject/olkypdtx.html