如果信号仍然有效,如何停止循环

发布于 2025-01-13 22:58:58 字数 695 浏览 2 评论 0原文

我有两个带接线的输入,第一个,检测门打开,并播放声音 1,当门关闭时,该声音关闭。

第二个声音是打开发动机汽车时的欢迎声音,但我对第二个声音有问题,因为它会永远循环播放欢迎声音,因为发动机已打开。

每次发动机开始工作时,我都需要播放欢迎声,但只有一次,输入信号永远不会切断,因为发动机是打开的,只有当发动机关闭时才会切断。

代码:

# define ACTIVATED LOW

int btndoor = 7;
int btnwelcome = 6;

void setup()
{
  pinMode(btndoor, INPUT);
  digitalWrite(btnpuerta,HIGH);

  pinMode(btnwelcome, INPUT);
  digitalWrite(btnwelcome,HIGH);

}

void loop(){
  if (digitalRead(btndoor) == ACTIVATED) {
    myDFPlayer.play(1);
    delay(2500);
    }

  if (digitalRead(btnwelcome) == ACTIVATED) {
          myDFPlayer.play (5);
          delay (2000);
          myDFPlayer.stop ();     
     
    }

}

我怎样才能停止循环?

i have two inputs with wiring, the first, detect doors opens, and play sound 1, this sound turn off, when closed its doors.

The second sound, is welcome sound when turn on the engine car, but i have problem with the second sound, because it plays loop forever with welcome the sound because the engine is turn on.

I need to play the welcome sound every time the engine is beginning to work, but only once, the input signal never cut off, because the engine is turn on, it only cuts off when the engine is off.

The code:

# define ACTIVATED LOW

int btndoor = 7;
int btnwelcome = 6;

void setup()
{
  pinMode(btndoor, INPUT);
  digitalWrite(btnpuerta,HIGH);

  pinMode(btnwelcome, INPUT);
  digitalWrite(btnwelcome,HIGH);

}

void loop(){
  if (digitalRead(btndoor) == ACTIVATED) {
    myDFPlayer.play(1);
    delay(2500);
    }

  if (digitalRead(btnwelcome) == ACTIVATED) {
          myDFPlayer.play (5);
          delay (2000);
          myDFPlayer.stop ();     
     
    }

}

How i can stop loop?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

遇到 2025-01-20 22:58:58

你可以使用标志 as

if engine is on
 if flag ==  false
   play the sound 
   flag = true

但不要忘记在关闭引擎时将 iot 设置为 false

turn engine off 
flag = false

u can use flag as

if engine is on
 if flag ==  false
   play the sound 
   flag = true

but dont forget to put iot as false when turn the engine off

turn engine off 
flag = false
血之狂魔 2025-01-20 22:58:58
if (digitalRead(btnpuerta) == ACTIVATED) {
    myDFPlayer.play(1);
    delay(2500);
    }

   if (digitalRead(btnwelcome) == ACTIVATED) {
       if (doneFlag == false) // fragmento para repetir el comando una sola vez
      {
          myDFPlayer.play (5);
          delay (2000);
          myDFPlayer.stop ();
          doneFlag = true;
      }
     
    }else{
      doneFlag = false;
    }
if (digitalRead(btnpuerta) == ACTIVATED) {
    myDFPlayer.play(1);
    delay(2500);
    }

   if (digitalRead(btnwelcome) == ACTIVATED) {
       if (doneFlag == false) // fragmento para repetir el comando una sola vez
      {
          myDFPlayer.play (5);
          delay (2000);
          myDFPlayer.stop ();
          doneFlag = true;
      }
     
    }else{
      doneFlag = false;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文