使用按钮作为切换按钮来停用警报器的蜂鸣器

时间:2021-02-17 17:07:02

标签: button arduino toggle push alarm

我正在制作一些我使用过蜂鸣器的东西,每当我的输出设备与输出终端断开连接时,蜂鸣器就会打开,
为了使蜂鸣器静音, 我使用按钮作为切换开关我将其命名为 buttonmute 我希望每当输出断开连接然后警报打开,如果说第一个输出断开连接然后蜂鸣器打开,如果我按下静音按钮它会关闭,如果第二个输出断开连接然后蜂鸣器应该再次打开,如果我再次按下静音按钮,然后蜂鸣器应关闭.. 就像事件确认模式。

1 个答案:

答案 0 :(得分:1)

首先,您可能需要一个可以打开或关闭蜂鸣器的功能。您在下面看到的函数会这样做,同时还会跟踪当前状态以阻止呼叫,例如尝试启用已启用的蜂鸣器。

bool buzzerState = false;
void enableBuzzer(bool newBuzzerState){
  if(buzzerState == newBuzzerState) return; //no change needed
  
  buzzerState = newBuzzerState;
  
  if(newBuzzerState){    //Turn buzzer on/off 
    digitalWrite(buzzerPin,HIGH);
  }else{
    digitalWrite(buzzerPin,LOW);
  }
}

之后,您只需调用 enableBuzzer(bool newBuzzerState) 函数即可。对于您按下按钮,它可能看起来像这样:

void checkPushButton(){
  if(digitalRead(pushButtonInputPin) == LOW){ //If button is pressed
    enableBuzzer(false); //Turn buzzer off
  }
}

您对输出设备的意思不太清楚,但如果您指的是串行监视器,您可以通过以下方式进行操作:

void checkSerialMoniter(){
  if(!Serial){ //if disconnected from the device
    enableBuzzer(true); //Turn buzzer on
  }
}

!Serial 检查您的串行监视器是否有串行连接,如果没有,它将返回 false。因此运行代码。

checkPushButton()checkSerialMoniter() 必须定期调用以检测更改。最简单的方法是在 void loop() 中简单地调用它们。

相关问题