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. |
| | | |
− | Notez que nous n'utilisons que le plot centrale et extrémité du potentiomètre.
| + | 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]] | | [[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). |
| | | |
| + | === Calcul de la valeur idéale === |
| Voici le schéma du pont diviseur sur lequel nous avons repris les informations connues. | | Voici le schéma du pont diviseur sur lequel nous avons repris les informations connues. |
| | | |
Ligne 45 : |
Ligne 73 : |
| | | |
| Une résistance R1 = 23 KOhms permet d'avoir une tension maximale de 1V sur l'ADC. | | Une résistance R1 = 23 KOhms permet d'avoir une tension maximale de 1V sur l'ADC. |
− | * Toute résistance R1 < 23 KOhms induit une tension supérieure à 1V sur l'ADC lorsque R1 (le pot.) est à 10 KOhms. | + | * 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 /> |