Boas , precisava de juntar uma saida com um "delay " para fazer trabalhar um motor durante uns segundos e depois parar dutante 4 horas mas sem interferir no resto do programa (codigo).
Alguem me pode ajudar? sou ainda principiante no arduino.
Obrigado
int led =6;
bool ledState=0;
long prevMillis=0;
int led_delay=1500;
void setup() {
while(!Serial);
pinMode (led,OUTPUT);
}
void loop() {
if(millis()-prevMillis > led_delay){
ledState =!ledState;
digitalWrite(led,ledState);
prevMillis=millis(); }
}
suponho que seja com essa funcao millis mas nao consigo mudaar os tempos. 5 segundos en HIGH e 4 horas em LOW
obrigado pela eventual ajuda
5 segundos são 5000 milisegundos.
4 horas são 4 * 60 * 60 * 1000 = 14400000
const unsigneld long ON_delay = 5000;
const unsigned long OFF_delay = 14400000;
unsigned long prevMillis=0;
unsigned char state = 0;
void setup() {
pinMode (led,OUTPUT);
}
if (millis() - prevMillis > OFF_delay && state == 0) {
//passaram 5 segundos e o motor estava ligado.
digitalWrite(led, HIGH);
state = 1;
prevMillis = millis();
}
if (millis() - prevMillis > ON_delay && state == 1) {
//passaram 5 segundos e o motor estava ligado.
digitalWrite(led, LOW);
state = 0;
prevMillis = millis();
}