我有一系列繼電器,我用Arduino控制電磁閥,控制水管周圍的水流。 繼電器1和3個高 等待13S 繼電器2和4個高 等待17S 繼電器1和3個低 等待13S 繼電器2和4低 等待:繼電器被在沿着此線有規律的間隔被切換300S 重複如何處理arduino和millis中的多個時間?
我開始用一個簡單的一系列延遲的命令是這樣的:
#include <DmxMaster.h>
void setup() {
DmxMaster.maxChannel(8);
}
void loop() {
delay(300000);
DmxMaster.write(1,HIGH);
DmxMaster.write(7,HIGH);
delay(13000);
DmxMaster.write(2,HIGH);
DmxMaster.write(8,HIGH);
delay(17000);
DmxMaster.write(1,LOW);
DmxMaster.write(7,LOW);
delay(13000);
DmxMaster.write(2,LOW);
DmxMaster.write(8,LOW);
}
這其中大部分的作品,但我會看情況它會跳過一個或多個延遲線和跳躍的時間到下一個聖地EP。我開始看的最長延遲(300S)的米利斯功能,並與下面就來了,但我想知道如何實現此爲較短的延遲,如果這將是任何改善:
#include <DmxMaster.h>
unsigned long currentTime;
unsigned long loopTime;
void setup()
{
DmxMaster.maxChannel(8);
currentTime = millis();
loopTime = currentTime;
}
void loop()
{
currentTime=millis();
if(currentTime >= (loopTime + 300000)){
DmxMaster.write(1,HIGH);
DmxMaster.write(7,HIGH);
delay(13000);
DmxMaster.write(2,HIGH);
DmxMaster.write(8,HIGH);
delay(17000);
DmxMaster.write(1,LOW);
DmxMaster.write(7,LOW);
delay(13000);
DmxMaster.write(2,LOW);
DmxMaster.write(8,LOW);
loopTime = currentTime;
}
}
在此先感謝, 卡梅隆