0
我正在使用一个按钮来触发一个继电器;代码如下。如何编程Arduino忽略按下按钮后按下按钮5分钟?
我想编程我的Arduino忽略任何后续按下按钮5分钟的时间。我如何在我的Arduino草图中包含这个功能?
这样做的目的是禁止用户重复触发继电器,反复按下按钮直至间隔5分钟。这是用于公共艺术作品的,如下所示,需要施加这样的限制以保证作品的适当使用。
int pinButton = 8;
int Relay = 2;
int stateRelay = LOW;
int stateButton;
int previous = LOW;
long time = 0;
long debounce = 500;
int stayON = 5000; //stay on for 5000 ms
void setup() {
pinMode(pinButton, INPUT);
pinMode(Relay, OUTPUT);
}
void loop() {
stateButton = digitalRead(pinButton);
if(stateButton == HIGH && previous == LOW && millis() - time > debounce) {
if(stateRelay == HIGH){
digitalWrite(Relay, LOW);
} else {
digitalWrite(Relay, HIGH);
delay(stayON);
digitalWrite(Relay, LOW);
}
time = millis();
}
previous == stateButton;
}
注意,'米利斯()'[后约50天溢出](https://www.arduino.cc/en/Reference/Millis)等按钮按压50天和0和5之间前一分钟后的分钟也将被忽略。尽管Arduinos通常不会连续运行50次,但这不太可能发生。 –