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 | |
| parent | 72bc657b9647f9dd679015d60956b9bc9a3289f5 (diff) | |
mais sensores
Diffstat (limited to 'esp')
| -rw-r--r-- | esp/BMP280.ino | 29 | ||||
| -rw-r--r-- | esp/LM393.ino | 42 |
2 files changed, 71 insertions, 0 deletions
diff --git a/esp/BMP280.ino b/esp/BMP280.ino new file mode 100644 index 0000000..417edb1 --- /dev/null +++ b/esp/BMP280.ino @@ -0,0 +1,29 @@ +#include <Wire.h> +#include <Adafruit_Sensor.h> +#include <Adafruit_BMP280.h> + +Adafruit_BMP280 bmp; // cria o objeto do sensor + +void setup() { + Serial.begin(115200); + Wire.begin(21, 22); // SDA e SCL + Serial.println("Teste do Sensor BMP280 - Pressão e Temperatura"); + + if (!bmp.begin(0x76)) { // endereço I2C padrão + Serial.println("Erro: BMP280 não encontrado!"); + while (1); + } +} + +void loop() { + float temp = bmp.readTemperature(); + float press = bmp.readPressure() / 100.0F; // converte Pa para hPa + + Serial.print("Temperatura: "); + Serial.print(temp); + Serial.print(" °C | Pressão: "); + Serial.print(press); + Serial.println(" hPa"); + + delay(2000); // leitura a cada 2 segundos +}
\ No newline at end of file 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 |
