NodeMCU et analogRead

Bonjour Je m'arrache les cheveux sur un truc pourtant tout simple : je veux tester la lecture analogique sur un NodeMCU 0.9. Le code est le plus simple possible - j'ai simplifié au fur et à mesure que je n'y arrivais pas :

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

void loop() {
  Serial.println(analogRead(A0));
}

Je ne vois pas comment simplifier encore...

Je branche un potentiomètre entre le 3.3V, le GND et la pin A0, et je règle vers 0.6V La console me donne : 2 En permanence.... même si je change la valeur du potentiomètre (j'ai bien vérifié que la tension change).

J'ai testé en déclarant une variable int pour l'analogRead, ça ne marche pas mieux.

int val = 0;

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

void loop() {
  val = analogRead(A0);
  Serial.println(val);
}

Quelqu'un a une idée ?

Quelle version de l'IDE?

Essayez de rajouter un ADC_MODE(ADC_VCC); au tout début du programme, en dehors des fonctions

Attention de mémoire je crois que la tension max détectable est 1V (qui vous donnera 1024 donc) et sur 0.9 il y avait des trucs louches en fonction de l'init car l'ADC peut lire différente source (batterie alim, ou externe)

Version 1.8.2 Je vais tester ça, merci

...

Il y a du mieux, mais c'est pas encore parfait : j'obtiens maintenant 65535 quel que soit le réglage du potentiomètre...

En cherchant un peu sur Internet, j'ai vu que ce problème était rapporté en 2015 sur GitHub : https://github.com/esp8266/Arduino/issues/338On parle de flasher l'ESP mais je ne sais pas faire ça. Je vais creuser de ce côté.

il faut creuser un peu, cela veut peut-être dire que vous ne lisez pas la valeur sur la broche mais Vcc peut-être? la pin TOUT / A0 a plusieurs usages et les spec ont évolués entre NodeMCU 0.9 (aka Version V1) et NodeMCU 1.0 (aka V1 et V2) (lire plus d’info ici)

Perso je n’en ai plus donc je ne peux pas trop vous dire (suis passé à des WeMos D1 mini qui ont un ESP8266EX et la pin A0 qui ne sait lire que du 0 à 1V contient son pont diviseur de tension avec 2 résistances 220kΩ et 100kΩ permettant de lire jusqu’à 3.2V → A0=3.2*ADC)