Ligne 2 : |
Ligne 2 : |
| | | |
| == 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). |
| + | |
| + | {{ADFImage|FEATHER-ESP8266-Brochage-50.jpg|480px}} |
| + | |
| + | 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 == | | == Schéma == |
− | Le montage suivant utilise un {{pl|33|potentiomètre de 10 Komhs}} auquel est adjoint une résistance de 26.7K (une résistance 22K + une résistance 4.7K). | + | 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. |
| | | |
− | Notez que nous n'utilisons que le plot centrale et extrémité du potentiomètre.
| + | 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]] | | [[Fichier:FEATHER-MICROPYTHON-ADC.jpg|640px]] |
| | | |
− | La tension au borne de l'ADC varie donc entre 0V et 0.899V.
| + | {{ambox-stop|text=Notez que le montage utilise uniquement le plot central et une extrémité du potentiomètre.}} |
| | | |
| == Tester == | | == Tester == |
− | {{traduction}}
| + | 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 == |
Ligne 21 : |
Ligne 48 : |
| 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). | | 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). |
| | | |
− | Voici le schéma du pont diviseur. | + | === 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]] | | [[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 /> | | <hr /> |