Saudações, estou tentando criar uma temporização com sensor ky-038 e ESP32 e a lógica é: Se a leitura analógica se mantiver abaixo de 1000 durante 2 segundos, uma tarefa é executada.
Tentei inserir o seguinte código, mas o programa não espera o tempo de 2s para executar a tarefa
int analog = 34; // O pino 34 contem o sensor de som
unsigned long ultimo_evento = 0;
int ledpin = 12;
void setup() {
pinMode(analog, INPUT); // Define o pino 34 como entrada
pinMode(ledpin, OUTPUT);
Serial.begin(115200);
}
void loop() {
int valor_A0 = analogRead(analog);// A variavel valor_A0 recebe a leitura digital do pino 34 onde o sensor esta
Serial.print("\nSaida A0: "); // Imprime no serial monitor "\nSaida A0: "
Serial.print(valor_A0); // Imprime no serial monitor o valor que a variável valor_A0 recebeu
if (valor_A0 < 1000) {
if ((millis() - ultimo_evento) > 2000) {
digitalWrite(ledpin, HIGH);
delay(2000);
digitalWrite(ledpin, LOW);
}
ultimo_evento = millis();
}
}