arduino中未按下按钮的持续时间



如何获取按钮未按下的持续时间?当持续时间超过30秒时,我必须在arduino中执行一个事件。如有任何帮助,将不胜感激

我会使用这样的代码,它保存最后一次按下的时间,并等到第30毫秒才能执行代码。让我知道它是否有效,因为我还没有测试过。

#define BUTTON_PIN 4
unsigned long startTime;
unsigned long lastPress;
void setup()
{
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{

byte buttonState = digitalRead(BUTTON_PIN);

if (buttonState == HIGH) // save the last time button was pressed in milliseconds
{
lastPress = millis();
}
if ((millis() - lastPress)  > 30000)
{
// execute any code you want after 30 seconds
// reset the counter
startTime = 0;
}
}

最新更新