diff options
| author | Gustavoeklund01 <eklundgu@gmail.com> | 2025-10-19 20:54:33 -0300 |
|---|---|---|
| committer | Gustavoeklund01 <eklundgu@gmail.com> | 2025-10-19 20:54:33 -0300 |
| commit | 15827f74f1ce8d428d3c3bb7f6eaf4e245cdad42 (patch) | |
| tree | 0cc02cbb4f68fc4bcac824631b4aac8daaf41dce /esp/LM393.ino | |
| parent | 72bc657b9647f9dd679015d60956b9bc9a3289f5 (diff) | |
mais sensores
Diffstat (limited to 'esp/LM393.ino')
| -rw-r--r-- | esp/LM393.ino | 42 |
1 files changed, 42 insertions, 0 deletions
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 |
