如何延迟arduino压电蜂鸣器的声音
我试图用压电蜂鸣器和超声波传感器发出汽车警告声。如果一个物体距离50到30厘米,它会发出1秒的声音,然后尝试关闭声音1秒,但我想不出一种方法来实现这个代码。你能帮助我吗?这是我的密码如何延迟arduino压电蜂鸣器的声音,arduino,arduino-uno,Arduino,Arduino Uno,我试图用压电蜂鸣器和超声波传感器发出汽车警告声。如果一个物体距离50到30厘米,它会发出1秒的声音,然后尝试关闭声音1秒,但我想不出一种方法来实现这个代码。你能帮助我吗?这是我的密码 #define echoPin 4 #define trigPin 3 #define buzPin 5 void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(bu
#define echoPin 4
#define trigPin 3
#define buzPin 5
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzPin, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
digitalWrite(echoPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long duration = pulseIn(echoPin, HIGH);
float distance = ((float)(340 * duration) / 10000) / 2;
Serial.print(distance);
Serial.println("cm");
if (distance <= 50 && distance > 31)
{
tone(buzPin, 391, 1000);
}
else if (distance <= 30 && distance > 21)
{
tone(buzPin, 391, 500);
}
else if (distance <= 20 && distance > 11)
{
tone(buzPin, 391, 100);
}
else if (distance <= 10)
{
tone(buzPin, 391);
}
else {
noTone(buzPin);
}
}
#定义echoPin 4
#定义trigPin 3
#定义buzPin 5
无效设置(){
Serial.begin(9600);
引脚模式(trigPin,输出);
pinMode(echoPin,输入);
pinMode(buzPin,输出);
}
void循环(){
数字写入(trigPin,低电平);
数字写入(echoPin,低电平);
延迟微秒(2);
数字写入(trigPin,高);
延迟微秒(10);
数字写入(trigPin,低电平);
无符号长持续时间=脉冲信号(echoPin,高);
浮动距离=((浮动)(340*持续时间)/10000)/2;
串行打印(距离);
序列号。打印号(“cm”);
如果(距离31)
{
音调(buzPin,391,1000);
}
否则,如果(距离21)
{
音调(buzPin,391500);
}
否则,如果(距离11)
{
音调(buzPin,391100);
}
否则,如果(距离在每次您告诉arduino开始发出音调(这是tone()命令)后增加一些延迟。要执行此操作,只需按照下面的说明进行操作:
//code
if(statement)
{
tone(buzPin, 391, 500);
delay(x); //x=with the delay you want the buzzer to sound in ms
noTone(buzPin); //after that the sound stops
delay(y); //y=with the delay you want the buzzer to be silent in ms
}