// ETEC - Técnico em Eletrônica - Sistemas Embarcados - Prof. Paulo Minster
// Placa DOIT ESP32 DevKit v1
// Função millis()
#define led1 4 // LED verde
#define led2 2 // LED amarelo
#define led3 15 // LED vermelho
unsigned long millisTarefa1 = millis();
unsigned long millisTarefa2 = millis();
unsigned long millisTarefa3 = millis();
void setup(){
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop(){
tarefa1(); // piscar o LED1 com invervalo de 500 milissegundos - 2Hz
tarefa2(); // piscar o LED2 com invervalo de 1000 milissegundos - 1Hz
tarefa3(); // piscar o LED2 com invervalo de 2000 milissegundos - 0.5Hz
}
void tarefa1(){
if((millis() - millisTarefa1) < 500){ // Tempo ligado: 0 até 500 milissegundos
digitalWrite(led1, HIGH);
}
else{
digitalWrite(led1, LOW);
}
if((millis() - millisTarefa1) > 1000){ // Tempo desligado: (1000 - 500)milissegundos
millisTarefa1 = millis();
}
}
void tarefa2(){
if((millis() - millisTarefa2) < 500){ // Tempo ligado: 0 até 500 milissegundos
digitalWrite(led2, HIGH);
}
else{
digitalWrite(led2, LOW);
}
if((millis() - millisTarefa2) > 2000){ // Tempo desligado: (2000 - 500)milissegundos
millisTarefa2 = millis();
}
}
void tarefa3(){
if((millis() - millisTarefa3) < 500){ // Tempo ligado: 0 até 500 milissegundos
digitalWrite(led3, HIGH);
}
else{
digitalWrite(led3, LOW);
}
if((millis() - millisTarefa3) > 4000){ // Tempo desligado: (4000 - 500)milissegundos
millisTarefa3 = millis();
}
}