From 15827f74f1ce8d428d3c3bb7f6eaf4e245cdad42 Mon Sep 17 00:00:00 2001 From: Gustavoeklund01 Date: Sun, 19 Oct 2025 20:54:33 -0300 Subject: mais sensores --- esp/LM393.ino | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 esp/LM393.ino (limited to 'esp/LM393.ino') diff --git a/esp/LM393.ino b/esp/LM393.ino new file mode 100644 index 0000000..6e6a5d5 --- /dev/null +++ b/esp/LM393.ino @@ -0,0 +1,42 @@ +#define SENSOR_PIN 35 // pino de sinal (DO) + +unsigned long lastTime = 0; +unsigned int pulsos = 0; +int estadoAnterior = HIGH; // começa em HIGH (sem interrupção) + +// Configurações do sensor +const int PULSOS_POR_VOLTA = 10; // 10 furos = 10 pulsos por volta +const float FATOR_KMH = 2.4; // km/h por rotação por segundo (ajuste conforme calibração) + +void setup() { + Serial.begin(115200); + pinMode(SENSOR_PIN, INPUT); + Serial.println("Anemômetro LM393 - Velocidade do vento"); +} + +void loop() { + int estadoAtual = digitalRead(SENSOR_PIN); + + // Detecta borda de descida: HIGH → LOW + if (estadoAnterior == HIGH && estadoAtual == LOW) { + pulsos++; + } + + estadoAnterior = estadoAtual; // atualiza para próxima leitura + + // A cada 1 segundo calcula RPM e velocidade + if (millis() - lastTime >= 1000) { + float rps = (float)pulsos / PULSOS_POR_VOLTA; + float rpm = rps * 60.0; + float velocidade = rps * FATOR_KMH; + + Serial.print("RPM: "); + Serial.print(rpm); + Serial.print(" | Velocidade: "); + Serial.print(velocidade); + Serial.println(" km/h"); + + pulsos = 0; + lastTime = millis(); + } +} \ No newline at end of file -- cgit v1.2.3