FEATHER-MICROPYTHON-ADC

De MCHobby - Wiki
Révision datée du 15 octobre 2017 à 22:13 par Admin (discussion | contributions) (→‎Introduction)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Introduction

L'ESP8266 dispose une entrée analogique. Cette entrée analogique est pris en charge par le convertisseur "analogique vers digital" (ADC, Analogic to Digital Converter).

FEATHER-ESP8266-Brochage-50.jpg
Crédit: AdaFruit Industries www.adafruit.com

Les entrées analogiques sont généralement notée A0, A1, A2, ..., An. L'ESP8266 ne disposant que d'une seule entrée analogique, celle-ci correspond a A0 mais elle est simplement nommée "ADC".

Tout serait parfait dans le meilleur des mondes si le convertisseur était capable de lire une tension couvrant la totalité du niveau logique de l'ESP8266.

Malheureusement la tension maximale supportée par l'entrée ADC est de 1.0 Volts.

Il convient donc de ne pas faire d'erreur de calcul ou de câblage lorsque l'on désire utiliser l'entrée analogique.

Schéma

Le montage suivant utilise un potentiomètre de 10 Komhs permettant de faire varier la tension entre 0 et 0.9V (environ). Le potentiomètre et la résistance de 26.7K créent un pont diviseur de tension.

La résistance de 26.7K est le résultat d'un raisonnement et de calculs détaillés plus loin dans ce tutoriel.

Le principe reste identique pour tout les senseurs de type résistif comme les photo-résistances, senseurs de force.

FEATHER-MICROPYTHON-ADC.jpg

Tester

Utiliser l'entrée analogique est très simple sous MicroPython. La classe ADC permet de faciliter la lecture de la valeur sur le convertisseur.

La résolution du convertisseur est de 10 bit. Cela signifie que le convertisseur retourne une valeur entre 0 et 1024 (soit une précision de 0.9 mV.

>>> import machine
>>> analog = machine.ADC(0)
>>> value = analog.read()
>>> print( value )
764
>>> voltage = value * (1/1024)
>>> print( voltage )
0.746094

La classe ADC prend le numéro de broche analogique en paramètre. ADC(0) fait donc référence à l'entrée analogique A0.

Calcul de la résistance

Le montage proposé utilise une résistance de 26.7K (22K + 4.7K) dans le pont diviseur.

Désirant utiliser un potentiomètre de 10 KOhms, cette résistance à été calculée et fixée de sorte à ne pas dépasser la tension maximale sur l'entrée analogique (soit 1.0V).

Calcul de la valeur idéale

Voici le schéma du pont diviseur sur lequel nous avons repris les informations connues.

FEATHER-MICROPYTHON-ADC-01.png

  • U1 = tension d'alimentation du pont de résistance (soit 3.3V, la tension d'alimentation du Feather).
  • U2 = tension mesurée sur le convertisseur Analogique Digital ADC. 1V max!.
  • R2 = Le potentiomètre 0 à 10 KOhms. La tension sera maximale sur l'ADC (U2) lorsque R2 sera au maximum (soit 10 K Ohms).

Soit, imaginons la tension max sur l'ADC, donc 1V. Cela fixe U2 à 1V dans le schéma ci-dessus.
Ces 1V seront présent sur l'ADC pour la résistance max du potentiomètre (R1). Note: Lorsque R1=0K, la tension sera de 0V sur l'ADC. Toute position intermédiaire (entre 0 et 10K) fixera la tension proportionnelle entre 0 et 1V.
La question est donc: quelle est la valeur idéale de R1 pour ne pas dépasser 1 volts (pour U2) lorsque R2 = 10K ?

Le calcul du pont diviseur se résout comme suit:

U2 = U1 * R2 / (R1 + R2)
# Avec U1 = 3.3V, R2 = 10000 Ohms,
# U2 = 1Volts Max de l'ADC
1 = 3.3 * 10000 / (10000 + R1)
1 = 33000 / (10000 + R1)
1 / 33000 = 1 / (10000 + R1)
33000 = 10000 + R1
33000 - 10000 = R1
R1 = 23000 Ohms 

Une résistance R1 = 23 KOhms permet d'avoir une tension maximale de 1V sur l'ADC.

  • Toute résistance R1 < 23 KOhms induira une tension supérieure à 1V sur l'ADC lorsque R1 (le pot.) est à 10 KOhms. Il y a donc danger de surtension sur l'ADC dans ce cas de figure
  • Toute résistance R1 > 23 KOhms induira une tension inférieure à 1V sur l'ADC lorsque R1 (le pot.) est à 10 KOhms. Situation de confort écartant le risque de surtension sur l'ADC

La résistance dans le monde réel

Le calcul ci-dessus démontre que la résistance R1 idéale est de 23 KOhms. Mais qui dispose d'une résistance de 23 KOhms dans ses cartons.

C'est sans compter sur la tolérance de la résistance, généralement +/- 5%. Une résistance de 23 KOhms peut donc avoir une valeur située entre 21.85 KOhms (induisant une situation à risque pour l'ADC) et 24.15 KOhms (situation de confort pour l'ADC).

Comme indiqué dans le "calcul de la valeur idéale" ci-dessus, il est préférable d'avoir une résistance R1 supérieure à 23 KOhms.

Nous avons dans nos cartons une résistance de 22 KOhms et une autre résistance de 4.7 KOhms, soit un total de 27.6 KOhms. Avec la tolérance de 5%, la résistance totale sera entre 26.7 KOhms - 5% = 25.36 KIhms et 26.7 KOhms + 5% = 28.03 KOhms. Nous restons donc bien au dessus de la valeur minimale théorique de 23 KOhms.

Une question demeure: quelle sera maintenant la tension U2 sur le convertisseur ADC avec notre résistance R1 fixée 26.7 KOhms et lorsque le potentiomètre de 10 K sera au maximum.

En reprenant le schéma ci-dessus, nous pouvons y mettre les nouvelles données:

FEATHER-MICROPYTHON-ADC-01.png

  • U1 = 3.3V
  • R1 = 26.7 KOhms (26700 Ohms)
  • R2 = 10 KOhms (10000 Ohms)
U2 = U1 * R2 / (R1 + R2)
# Avec U1 = 3.3V, R2 = 10000 Ohms,
# R1 = 26700 Ohms
U2 = 3.3 * 10000 / (26700 + 10000)
U2 = 0.899 Volts

La tension appliquée sur le convertisseur ADC sera de 0.899 Volts Max.

Pour cette tension maximale, le convertisseur ADC retournera la valeur numérique maximale de 0.899 / (1/1024) = 920


Tutoriel réaliser par Meurisse D. pour MC Hobby SPRL

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.