Modifications

Sauter à la navigation Sauter à la recherche
5 870 octets ajoutés ,  15 octobre 2017 à 22:13
Ligne 1 : Ligne 1 : −
{{traduction}}
+
{{MCH-Aider}}
    
== Introduction ==
 
== Introduction ==
{{traduction}}
+
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).
   −
== Montage ==
+
{{ADFImage|FEATHER-ESP8266-Brochage-50.jpg|480px}}
{{traduction}}
+
 
 +
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.
 +
 
 +
<font color="red">'''Malheureusement la tension maximale supportée par l'entrée ADC est de 1.0 Volts'''</font>.
 +
 
 +
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 {{pl|33|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. 
 +
 
 +
[[Fichier:FEATHER-MICROPYTHON-ADC.jpg|640px]]
 +
 
 +
{{ambox-stop|text=Notez que le montage utilise uniquement le plot central et une extrémité du potentiomètre.}}
 +
 
 +
== 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.
 +
 
 +
<syntaxhighlight lang="python">
 +
>>> import machine
 +
>>> analog = machine.ADC(0)
 +
>>> value = analog.read()
 +
>>> print( value )
 +
764
 +
>>> voltage = value * (1/1024)
 +
>>> print( voltage )
 +
0.746094
 +
</syntaxhighlight>
 +
 
 +
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 ==
 
== Calcul de la résistance ==
{{traduction}}
+
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.
 +
 
 +
[[Fichier: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.<br />
 +
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.<br />
 +
'''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:
 +
<nowiki>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</nowiki>
 +
 
 +
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. <font color="red">'''Il y a donc danger de surtension sur l'ADC dans ce cas de figure'''</font>
 +
* Toute résistance R1 > 23 KOhms induira une tension inférieure à 1V sur l'ADC lorsque R1 (le pot.) est à 10 KOhms. <font color="teal">'''Situation de confort écartant le risque de surtension sur l'ADC'''</font>
 +
 
 +
=== 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 (<font color="red">induisant une situation à risque pour l'ADC</font>) et 24.15 KOhms (<font color="teal">situation de confort pour l'ADC</font>).
 +
 
 +
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:
 +
 
 +
[[Fichier:FEATHER-MICROPYTHON-ADC-01.png|240px]]
 +
 
 +
* U1 = 3.3V
 +
* R1 = 26.7 KOhms (26700 Ohms)
 +
* R2 = 10 KOhms (10000 Ohms)
 +
 
 +
<nowiki>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</nowiki>
 +
 
 +
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 
 +
 
 +
<hr />
 +
<small>Tutoriel réaliser par Meurisse D. pour [http://shop.mchobby.be MC Hobby SPRL]</small>
 +
 
 +
{{MCH-Accord}}
29 917

modifications

Menu de navigation