ESP8266-12 F / Problema de lectura analógica del sensor de humedad

0

Estoy usando un módulo ESP8266 12 F con 3 baterías de 1,2 V (3,6 voltios) Conecté un sensor de humedad del suelo chino como este ( LINK) al pin anaologico del modulo ESP8266. El módulo funciona de 3,3 voltios a 5 V.

Problema : el sensor devuelve 1024 cada vez, sin importar cuáles sean las condiciones reales de humedad. Condiciones secas = 1024, totalmente debajo del agua = 1024

Intenté lo mismo con un módulo NodeMCU que usa el mismo chip ESP8266 y no hubo problemas con la lectura analógica.

Pregunta 1: descubrí que el ESP8266 12 F tiene un pin analógico capaz de leer solo valores de 0-1 voltios, por lo que esto podría explicar la alta lectura en cada medición cuando se suministra con 3, 6 voltios y bajo condiciones de humedad. Todavía no entiendo por qué el sensor devuelve 1024, incluso si hay condiciones absolutamente secas. ¿No debería haber una lectura 0?

Pregunta 2: Sé que necesito algún tipo de divisor de voltaje, por ejemplo. dos resistencias y agradecería algún indicio de cuáles debería usar. El módulo NodeMCU parece tener un divisor de voltaje a bordo y es por eso que todo funcionó con este módulo.

    
pregunta Peter S

1 respuesta

0

Recientemente encontré el problema de lectura analógica en un ESP12 y encontré que se hace referencia al problema aquí:

enlace

Para resolver el problema, modifiqué core_esp8266_wiring_analog.c como se muestra aquí:

extern int __analogRead(uint8_t pin)
{
    // accept both A0 constant and ADC channel number
    if(pin == 17 || pin == 0) {
        return readvdd33() >> 2; // readvdd33 is 12 bit
    }
    return digitalRead(pin) * 1023;
}
    
respondido por el Kluge

Lea otras preguntas en las etiquetas