Référence analogique
Figure 2 : Les entrées analogiques (A0-A5) et les sorties PWM analogiques (Digital 3, 5, 6, 9, 10 et 11) de la carte Arduino Uno (rev3) sont physiquement accessibles via les broches du connecteur à l’extrémité de la carte (avec l’aimable autorisation de Arduino.cc).
Le développement de code avec des fonctions d’E/S analogiques est également facile, car le langage de programmation pris en charge par l’IDE Arduino comprend un ensemble de commandes d’E/S analogiques natives. Ces instructions permettent de lire les entrées analogiques, de générer des sorties analogiques (PWM) et de régler la tension de référence du convertisseur A/N.
La connexion des entrées analogiques de l’Arduino à une application réelle est assez simple, mais nécessite une certaine attention pour sélectionner la source de référence de tension appropriée pour le convertisseur A/D de l’AVR. Une tension de référence PRÉDÉTERMINÉE, à VALEUR INTERNE OU EXTERNE, peut être utilisée pour déterminer la limite supérieure de sa plage de tension d’entrée. En mode PRESET, le MCU utilise la sortie du régulateur d’alimentation embarqué comme référence. Selon la carte Arduino utilisée, il s’agit de 5V ou de 3,3V.
Adc arduino exemple
Les entrées analogiques sont utilisées pour lire les informations de grandeur physique fournies par les capteurs de température, de lumière, de distance, …. La tension que nous lisons sur le capteur n’est pas fournie par un circuit associé à ce capteur dans une plage de valeurs de tension continue comprise entre 0V et 5V.
La carte Arduino dispose de 6 entrées analogiques marquées “A0”, “A1”,…, “A5” qui reçoivent les valeurs continues dans une gamme de 0V à 5V, mais la carte Arduino ne fonctionne qu’avec des valeurs numériques, donc une conversion de la valeur analogique lue en une valeur numérique est nécessaire. La conversion est effectuée par un circuit analogique/numérique intégré à la carte elle-même.
Dans ce manuel, nous consacrons un chapitre entier à la façon dont l’Arduino lit les quantités analogiques. Nous examinerons également de nombreuses configurations dans lesquelles ces broches sont utilisées pour lire des capteurs.
Référence analogique (arduino)
Dans le cas de l’Arduino Uno, les entrées analogiques ont une résolution de 10 bits, ce qui donne 1024 niveaux numériques, ce qui signifie qu’avec une valeur maximale de 5V, on suppose une précision de mesure de +-2,44mV.
Pour résoudre cette situation, Arduino permet de changer la tension prise comme référence par le convertisseur analogique-numérique. La valeur de la référence est modifiée avec la fonction AnalogRef, et les valeurs possibles sont :
Si nous devons lire une tension d’entrée supérieure à 5v, par exemple 12v, une adaptation de la tension doit être faite. La façon idéale de le faire est d’utiliser un simple diviseur de tension :
Avec cette configuration, la broche analogique de l’Arduino recevra une tension qui varie entre 0 et 3,84V, donc, comme nous l’avons expliqué, nous perdrions en précision relative. Une option serait d’ajuster les résistances pour que les limites soient aussi proches que possible de 0 et 5V, ou d’utiliser un autre diviseur de tension pour alimenter la broche Aref.
Arduino externe
Dans une session précédente, nous avons déjà dit que l’Arduino dispose de 6 convertisseurs analogique-numérique (ADC) qui sont les broches A0 à A5, et nous avons dit qu’ils sont capables de convertir des valeurs de tension jusqu’à un maximum de 5V, qui est la tension de référence sur l’Arduino.
En d’autres termes, un CDA ne fournit pas de valeurs absolues, mais plutôt une comparaison quantifiée par rapport à une valeur de référence. Par conséquent, dans la session du capteur de température TMP36, nous avons calculé la tension d’entrée sur l’une des broches analogiques comme la lecture multipliée par un rapport entre la valeur maximale de l’entrée 5V et le maximum mesuré par le convertisseur 1024.
En pratique, 3,3V étant la tension d’entrée maximale par rapport à 5V, cela signifie que nous n’aurons jamais de lectures supérieures à 1024 * 3,3 /5 = 675 et que nous aurons toujours des pas d’entrée de 5mV.
Mais si le convertisseur est un comparateur de tension, si nous pouvions changer la valeur de la tension à laquelle nous comparons à 3,3V, les étapes seraient 3,3V/1024 = 0,00322265625 ou 3,2 mV. En d’autres termes, nous avons amélioré la résolution de notre convertisseur sans dépenser un centime.