【问题标题】:Arduino, button delay LED outputArduino,按钮延迟 LED 输出
【发布时间】:2017-06-12 15:09:18
【问题描述】:

所以我试图让 LED 对按钮做出反应。我似乎遇到的问题是如何在按钮单击和 LED 反应之间添加延迟。基本上我想,例如,单击按钮 3 次,然后在 2 秒后让 LED 闪烁 3 次,或者如果我按住按钮 3 秒,在按住的最后一秒,LED 将亮起 3 秒.到目前为止我所拥有的是:

    //Global Vars
    // Global Variables
    int BUTTON = 2;
    int LED = 12;
    unsigned long DELAY = 2000;


    void setup() {
        pinMode(BUTTON, INPUT);
        pinMode(LED, OUTPUT);
        digitalWrite(LED, LOW);
    }

    void loop() {
        //Code that delays the button press
    }

我不知道是否应该尝试将按下按钮的时间存储在数组中或执行其他操作。寻找建议/解释,甚至可能只是一些代码和解释。它只是为了好玩/学习,所以我更感兴趣的是知道如何去做,而不仅仅是拥有能够做到这一点的代码。谢谢!

【问题讨论】:

  • 如果你读过我写的,你就会知道这不是家庭作业。另外,如果我知道如何实现我所描述的逻辑,我会的。正如我之前所说,我什至无法启动所描述的场景......
  • 同意@Olaf。甚至根本没有必要的伪代码来证明你是这样的。您必须在第一次按下按钮后启动计时器,并在松开按钮后停止计时器。如果您按住 1 秒作为开始,请尝试使其点亮 LED。
  • 只需使用倒数计时器并设置一个中断,当倒数达到 0 时为 LED 供电。
  • 您没有为您的问题提供更好的尝试。根据您的问题,我在您的代码部分中找不到任何工作。

标签: button arduino led


【解决方案1】:

这可以通过一个简单的 if 语句来解决。

if (digitalRead(BUTTON) = //however you have it set){
delay(DELAY);
digitalWrite(LED, HIGH);
}

这将读取按钮线的状态,当它与您想要的状态匹配时将执行延迟,然后更改 LED 引脚的状态。

【讨论】:

  • delay() 暂停循环不是吗?我仍然希望能够在单击按钮和 LED 亮起之间读取更多按钮点击次数。
  • 然后使用中断。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多