Como executo essa função?

Tenho um sistema de incendio e queria por um cronometro para ele funcionar por um tempo limitado enquanto o sistema está alarmando, como posso fazer isso?

Codigo:

int led1 = 4;
int led2 = 6;
int led3 = 5;
int rele = 7;
int buzzer = 2;
int mq2 = A0;
int fumaca = 0;

void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(rele, OUTPUT);
}

void loop() {
fumaca = analogRead(mq2);
Serial.print("Nivel de CO: ");
Serial.println(fumaca);

if (fumaca>200){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(rele, LOW);
tone(buzzer, 1450);
delay(250);
tone(buzzer, 1890);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
}
else{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(rele, HIGH);
noTone(buzzer);
}
delay(1000);
}

Fala Daniel,

a função millis() é perfeita para cronometragem e outros empregos do tempo, mas nao de hora e data.

Ok? Espero ter ajudado, abs, Papo.

1 Curtida