Problemas com sensor HD-38 e ESP32

Pessoal estou com problema, meu sensor mesmo seco fica dando 100% de umidade, alguém possa me ajuda ?

int pinoSensor = 36;  // Conectado ao pino GPIO36 (A0)
int valorSensor = 0;  // Variável para armazenar o valor do sensor
int umidadePercentual = 0;

void setup() {
  Serial.begin(115200);
}

void loop() {
  valorSensor = analogRead(pinoSensor);  // Leitura do valor analógico
  umidadePercentual = map(valorSensor, 0, 4095, 0, 100);  // Converte para 0-100%
  
  Serial.print("Valor do sensor: ");
  Serial.print(valorSensor);
  Serial.print("  -  Umidade: ");
  Serial.print(umidadePercentual);
  Serial.println("%");
  
  delay(1000);  // Espera 1 segundo antes da próxima leitura



(post flagged for moderation to move to International/Portuguese)

Olá! Tudo bem? Bem vindo ao Forum.

Antes de mais nada, parabéns por ter colocado seu código usando a formatação correta já no seu primeiro post.

A escolha do seu tópico, por outro lado, não foi das melhores... :wink:

O tópico Nano ESP32 é específico para a placa de mesmo nome, mas o que você tem é um ESP32 puro. Além disso, no Forum global, a língua adotada é o inglês. Para posts em Português há uma seção específica: https://forum.arduino.cc/c/international/portugues/ e ela não tem subdivisão de assuntos.

Eu vou pedir para um moderador mudar o post de lugar.

Quanto a sua dúvida, vale observar que o sensor DIMINUI a resistência quanto mais úmido estiver o ambiente. Então, no seco, é de se esperar que ele retorne o valor máximo mesmo. Para o sistema se comportar como você espera, você precisa inverter a lógica do map(), alterando essa linha:

umidadePercentual = map(valorSensor, 0, 4095, 0, 100);

Para:

umidadePercentual = map(valorSensor, 4095, 0 , 0, 100);

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.