Modifications

Sauter à la navigation Sauter à la recherche
5 355 octets ajoutés ,  23 mars 2022 à 19:57
Ligne 2 : Ligne 2 :     
== Introduction ==
 
== Introduction ==
xxxx
+
Avant de parler de l'ADS1115 (ou ADS1015), vous devez savoir qu' '''une version nettement plus complète de ce tuto''' est disponible dans le [https://github.com/mchobby/esp8266-upy/tree/master/ads1015-ads1115 fichier readme.md de notre dépôt GitHub]. N'hésitez pas à le consulter pour de plus amples informations.
 +
 
 +
[[Fichier:ADS1115-mini.jpg]]
 +
 
 +
Ce breakout offre un convertisseur analogique-vers-digital I2C haute gamme pour microcontrôleur. Il se montrera utile pour effectuer des captures en continu (jusqu'à 860 échantillons par seconde), des mesures en haute précision (16 bits). Ce convertisseur est également capable de réaliser des mesures différentielles entre deux entrées analogiques. Equipé d'un amplificateur à gain programmable (PGA) et d'un convertisseur 16 bits (15 bits en enlevant le signe), ce senseur sera capable de faire un échantillonnage avec un facteur d'échelle allant de 0.1875mv à 0.00781mv.
 +
 
 +
L'ADS1115 peut être configurée comme:
 +
* 4 entrées analogiques simples (4 canaux)
 +
* ou 2 canaux différentiels (les canaux différentiels sont, par exemple, utilisés pour la mesure de tension aux bornes de la résistance du senseur de courant comme sur lNA219).
 +
 
 +
=== Adresses I2C ===
 +
L'adresse par défaut est 72 (0x48 en Hexadécimal) lorsque ADDR est branché sur la masse.
 +
 
 +
Il est possible de la modifier comme suit:
 +
* Placer ADDR au niveau haut modifie l'adresse à 73 (0x49).
 +
* Placer ADDR sur SDA modifie l'adresse à 74 (0x4a).
 +
* Placer ADDR sur SCL modifie l'adresse à 75 (0x4B).
 +
 
 +
=== Amplificateur Gain Programmable et tension max ===
 +
L'ADS1x15 est un convertisseur Analogique/Digital à gain programmable.
 +
 
 +
La valeur de gain correspond à un index dans la table ''Programmable Gain Amplifier'' (PGA).
 +
 
 +
Le PGA définit une gamme de tension utilisable pour la conversion. Le rapport de conversion est déduit de cette gamme de tension.
 +
 
 +
{{ambox-stop|text=La gamme de tension du PGA n'indique pas la tension maximale admissible par le convertisseur! La tension maximale sur une entrée analogique est fixée à VDD + 0.3v}}
 +
 
 +
Les valeurs acceptables pour gain sont:
 +
{| class="wikitable" border="1"
 +
|-
 +
| align="center" | '''Index du gain'''
 +
| align="center" | '''Gamme de tension'''
 +
| align="center" | '''Remarque'''
 +
|- style="font-size: 90%"
 +
| align="left" | 0
 +
| align="left" | 6.144V
 +
| align="left" | 2/3x
 +
|- style="font-size: 90%"
 +
| align="left" | 1
 +
| align="left" | 4.096V
 +
| align="left" | 1x
 +
|- style="font-size: 90%"
 +
| align="left" | 2
 +
| align="left" | 2.048V
 +
| align="left" | 2x
 +
|- style="font-size: 90%"
 +
| align="left" | 3
 +
| align="left" | 1.024V
 +
| align="left" | 4x
 +
|- style="font-size: 90%"
 +
| align="left" | 4
 +
| align="left" | 0.512V
 +
| align="left" | 8x
 +
|- style="font-size: 90%"
 +
| align="left" | 5
 +
| align="left" | 0.256V
 +
| align="left" | 16x
 +
|}
 +
 
 +
Pour calculer la valeur en volts pour une valeur donnée, il faut appliquer la formule suivante:
 +
 
 +
<nowiki>valeur_volt = valeur_lue * (gamme_de_tension / 32767)
 +
valeur_millivolt = valeur_volt * 1000</nowiki>
 +
 
 +
Par exemple, la valeur lue 6804 pour l'index de gain = 4 correspond à la tension suivante:
 +
 
 +
<nowiki>valeur_volt = 6804 * (0.512 / 32767 )
 +
valeur_volt = 0.10631 volts
 +
valeur_millivolt = 106.31 mV</nowiki>
 +
 
 +
=== Valeurs codées sur 15 bits ===
 +
La sortie d'un ADS1115 est connue pour fournir un entier signé encodé en 16 bits.
 +
 
 +
Cela signifie que l'un des bits de la valeur 16 bits est utilisé pour indiquer le signe de la valeur (positif ou négatif).
 +
 
 +
Ce qui est important de saisir, c'est que seuls 15 de ces 16 bits sont utilisés pour communiquer la valeur de la mesure.
 +
 
 +
Sur 15 bits, il est donc possible d'encoder 32768 valeurs différentes dont zero est la première valeur et 32767 la dernière.
 +
 
 +
En fin de compte, c'est bien un périphérique 16 bits mais seuls 15 bits sont utilisés pour communiquer la magnitude de la mesure.
 +
 
 +
=== ADS1115: La valeur du Bit et conversion en volts ===
 +
La valeur du bit est déterminé par le PGA (Programmable Gain Amplifier, Amplificateur à gain programmable), celui-ci déterminant la valeur maximale théorique de la tension sur un ADS1115.
 +
 
 +
Dans le mode par défaut (gain = 0) la valeur est de +/-6.144 volts.
 +
 
 +
Par conséquent, la valeur numérique 32767 (valeur max sur 15 bits) correspond à 6.144 volts.
 +
 
 +
Nous obtenons le facteur d'échelle en appliquant la division 6.144 / 32767 = 0.00001875 v par bit = 0.01875 mV par bit.
 +
 
 +
C'est une nette amélioration par rapport au convertisseur ADC d'Arduino. En effet, le facteur d'échelle atteint 5/1024 = 0.0048 v par bit = 5mV par bit. Le convertisseur ADC du ADS1115 est 25x plus précis que celui d'un Arduino Uno.
 +
 
 +
Le cas présenté jusqu'ici était le moins favorable! En utilisant une autre configuration PGA comme gain = 3 nous avons une tension d'entrée maximale de 1.024 volts, ce qui correspond à un facteur d'échelle de 1.024/32768 = 0.00003125 Volts par bit = 0.03125 mV par bit!
    
== Installer la bibliothèque ==
 
== Installer la bibliothèque ==
Ligne 9 : Ligne 101 :  
Ce pilote utilise le bus I2C. Son utilisation requière l'installation d'une bibliothèque spécifique. Vous trouvez celle-ci ici:
 
Ce pilote utilise le bus I2C. Son utilisation requière l'installation d'une bibliothèque spécifique. Vous trouvez celle-ci ici:
   −
{{download-box|Téléchargez la bibliothèque ADS1x15|https://github.com/mchobby/esp8266-upy/blob/master/ads1015-ads1115/ads1x15.py}}
+
{{download-box|Téléchargez la bibliothèque ADS1x15|https://github.com/mchobby/esp8266-upy/tree/master/ads1015-ads1115}}
    
Vous devrez copier les fichiers suivant sur votre carte MicroPython
 
Vous devrez copier les fichiers suivant sur votre carte MicroPython
Ligne 38 : Ligne 130 :  
== Brancher ==
 
== Brancher ==
 
=== Brancher un ADS1115 ===
 
=== Brancher un ADS1115 ===
[[Fichier:FEATHER-MICROPYTHON-ADS1115-brancher.jpg|640px]]
+
[[Fichier:FEATHER-MICROPYTHON-ADS1115-brancher.png|640px]]
    
== Utiliser ==
 
== Utiliser ==
Ligne 60 : Ligne 152 :  
print( value )
 
print( value )
   −
# Calculer la valeur en Volts (voir les notes plus loin)
+
# Calculer la valeur en Volts:
# Affichera 3.29025
+
# * voir les notes ci-dessus concernant la valeur du Bit)
print( value * 0.1875 / 1000 )  
+
# * Multiplier la valeur lue par 0.1875 mv par bit
 +
#
 +
print( value * 0.1875 / 1000 )
 +
 
 +
# Ceci affichera 3.29025 Volts
 
</syntaxhighlight>
 
</syntaxhighlight>
    
== Encore Plus ==
 
== Encore Plus ==
* [https://github.com/mchobby/esp8266-upy/tree/master/ads1015-ads1115 Voyez la page GitHub pour plus de détails sur la lecture des données] (''MCHobby GitHub'')
+
* [https://github.com/mchobby/esp8266-upy/tree/master/ads1015-ads1115 Voyez la page GitHub pour plus de détails sur la lecture des données] (''MCHobby GitHub'')<br/>La '''documentation GitHub contient beaucoup plus d'information''' comme:
 
+
** La vitesse d'échantillonnage, l'échantillonnage continu
 +
** La gestion des seuils, utilisation des interruptions (alert)
 +
** Description des méthodes
 +
** Autres exemples
 
* [[MicroPython-Accueil#ESP8266_en_MicroPython|nos autres tutoriels MicroPython sur ESP8266]]  
 
* [[MicroPython-Accueil#ESP8266_en_MicroPython|nos autres tutoriels MicroPython sur ESP8266]]  
 
* [[MicroPython-Accueil|tutoriels MicroPython]] (généraux).
 
* [[MicroPython-Accueil|tutoriels MicroPython]] (généraux).
Ligne 74 : Ligne 173 :  
== Où acheter ==
 
== Où acheter ==
 
* [http://shop.mchobby.be/product.php?id_product=362 Adafruit ADS1115 (ADA1085)] disponible chez MCHobby
 
* [http://shop.mchobby.be/product.php?id_product=362 Adafruit ADS1115 (ADA1085)] disponible chez MCHobby
 +
* {{pl|846|Feather HUZZAH avec ESP8266}} disponible chez MCHobby
 +
* {{cl|56|La gamme MicroPython}}
    
<hr />
 
<hr />
29 917

modifications

Menu de navigation