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);
}