Arduino 距离传感器

const int trigPin = 3; // 传感器trig引脚连接到开发板模拟口3
const int echoPin = 2; // 传感器Echo引脚连接到开发板模拟口2

long duration, distance;
int tonePin = A0; //蜂鸣器的pin

void setup() {

  Serial.begin(9600);        // 开始 Serial Terminal 串口监视器

  pinMode(trigPin, OUTPUT);  // 将trigPin设置为输出

  pinMode(echoPin, INPUT);  //将echoPin设置为输入

  pinMode(tonePin, OUTPUT); //设置蜂鸣器的pin为输出模式

}


void loop() {

  digitalWrite(trigPin, LOW);  // 先将trigPin设置为低电平状态2微秒
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH); //再将trigPin设置为高电平状态10微秒
  delayMicroseconds(10);
  
  digitalWrite(trigPin, LOW);

  Serial.print(distance);        //在串口监视器打印出距离
  Serial.print("cm");
  Serial.println();

  tone(tonePin, 441); //此函数依次播放t1序列里的数组,即每个 音符
  duration = pulseIn(echoPin, HIGH); //计算echoPin在高电平状态的时长
  distance = duration * 0.034 / 2;  // 计算传感器跟物体之间的距离
  delay(20);
  noTone(tonePin);//停止当前音符,进入下一音符

  if (distance > 100) {
    distance = 100;
  }
  delay(distance * 10); //每个音符持续的时间,即节拍d1,是调整时间的越大,曲子速度越慢,越小曲子速度越快,自己掌握吧
  Serial.print("delay:");
  Serial.print(distance * 10);
  Serial.println();
  Serial.print("------");
  Serial.println();

  delay(10);

}

猜你喜欢

转载自blog.csdn.net/iffy1/article/details/129903529
今日推荐