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次,但這不太可能發生。 –