Vous êtes sur la page 1sur 4

L’ADC de l’ESP8266 (nodeMCU) et micropython – LAurent_B('s)log https://laurentblogs.wordpress.com/2016/12/27/ladc-de-lesp...

LAurent_B('s)log
Des trucs avec de l'électronique, du code et de la fabrication numérique

L’ADC de l’ESP8266 (nodeMCU) et mi-


cropython

Pour l’un de mes projets, j’ai besoin d’utiliser l’ADC de l’esp8266. Il est possible
de trouver des infos di�érentes sur l’échelle de ce convertisseur. Certaines le
donnent fonctionnant entre 0 à 1 V et d’autres entre 0 à 3V. Et pour �nir, la
datasheet est muette sur le sujet.

A�n déterminer l’échelle de fonctionnement nous allons caractériser l’adc en


appliquant une tension croissante sur l’adc et pour chacune de ces tensions nous
allons relever la valeur de l’adc.

Le système
La carte nodeMCU est �ashée avec le �rmware micropython :

MicroPython v1.8.4-38-g34e0198-dirty on 2016-09-21; ESP module with


ESP8266

La con�guration de l’entrée adc :


import machine
adc = machine.ADC(0)

Lecture du convertisseur :
adc.read()

1 of 4 28/10/2023 21:32
L’ADC de l’ESP8266 (nodeMCU) et micropython – LAurent_B('s)log https://laurentblogs.wordpress.com/2016/12/27/ladc-de-lesp...

La dispersion des mesures


Regardons comment l’adc ce comporte sur une dizaine de lecture à tension
constante pour 5 valeurs de tensions di�érentes.

Mesure ADC
U
1 2 3 4 5 6 7 8 9 10

0.00 3 3 3 4 3 3 3 3 3 3

0.25 86 86 86 86 86 86 86 86 86 86

0.50 170 170 170 170 171 170 171 170 170 170

1.00 334 334 334 334 334 334 334 334 334 334

1.50 502 502 502 502 502 502 502 502 502 502

Les valeurs ne présentent pas de dispersion, on peut donc se contenter de faire


qu’une mesure par valeur de tension.

Le comportement de l’adc
Le tableau suivant donne le résultat obtenu :

U(V) ADC

0.00 3

0.25 86

0.50 170

0.75 254

2 of 4 28/10/2023 21:32
L’ADC de l’ESP8266 (nodeMCU) et micropython – LAurent_B('s)log https://laurentblogs.wordpress.com/2016/12/27/ladc-de-lesp...

1.00 334

1.25 416

1.50 502

1.75 585

2.00 666

2.25 750

2.50 833

2.75 915

3.00 1000

3.05 1017

3.06 1021

3.07 1024

3.08 1024

3.09 1024

3.10 1024

3.08 1024

3.09 1024

3.10 1024

La saturation se fait à partir de 3.07 V sur la carte testé. Avant cette valeur, nous
avons une jolie droite.

3 of 4 28/10/2023 21:32
L’ADC de l’ESP8266 (nodeMCU) et micropython – LAurent_B('s)log https://laurentblogs.wordpress.com/2016/12/27/ladc-de-lesp...

Conclusions
En fait il semble que tout le monde ait raison
dans l’histoire, il faut juste véri�er de quoi
nous parlons. L’ESP8266 est bien limite à 1 V
sur l’adc, mais le nodeMCU est limite à 3 V car il
intègre un pont diviseur (voir l’image à droite)
et ce pont est bien décrit dans la documentation
github.

Je ne suis pas totalement certain que


l’intégration de ce pont soit pratique dans le
cas où les valeurs à mesurer ne pas sont
comprises entre 0 et 3.1 V. Ce qui est possible
pour des capteurs analogiques fonctionnant en 5 V.

Références
https://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/adc.html

LAurent_B / 27 décembre 2016 / Non classé

LAurent_B('s)log /

4 of 4 28/10/2023 21:32

Vous aimerez peut-être aussi