Conversion Analogique Numérique (CAN)⚓
Électronique numérique et analogique
On distingue 2 types d'électronique :
L'électronique analogique qui utilise des variations continues de la tension qui peut prendre toutes les valeurs intermédiaires (potentiomètre = variation du minimum au maximum).
L'électronique numérique qui utilise des variations « abruptes » de la tension qui va prendre 2 niveaux (interrupteur = allumé ou éteint) :
l'un dit HAUT (5V), l'un dit BAS (0V).
Un microprocesseur, tel que celui de la carte Arduino, est un circuit numérique qui va permettre de manipuler des niveaux HAUT/BAS.
Rappel : Une broche numérique ne peut avoir que 2 états : HAUT ou BAS. Une broche numérique, une broche métallique dans le cas d'un circuit intégré ou d'une carte électronique.
Une broche numérique va être caractérisée par son état ou niveau de tension : elle
va pouvoir se trouver dans 2 états possibles seulement :
soit au niveau HAUT (=5V), symbolisé par 1 ou HIGH
soit au niveau BAS (=0V), symbolisé par 0 ou LOW
noter qu'à un instant quelconque, la broche se trouve obligatoirement
dans l'un de ces 2 états.
La conversion analogique-numérique
Faire une mesure, ?
On a tous mesuré quelque chose : une hauteur, un poids, un volume de liquide dans un verre doseur, une température avec un thermomètre, une tension avec un voltmètre, etc... Quand on mesure, on fait quoi au juste ? Si on y réfléchit bien, faire une mesure, c'est mettre en correspondance un état physique donné avec une graduation (ou échelle de mesure). Par exemple, lorsque l'on mesure une température, on associe la « hauteur » de liquide coloré dans le thermomètre avec la graduation qui est à côté.
Pour mettre en correspondance l'état physique que l'on mesure et la graduation, on se base sur une valeur de référence : généralement, on fixe précisément l'état physique qui correspond à la graduation 0. Par exemple, lorsque l'on mesure la longueur d'un segment, on va commencer par positionner précisément le 0 au niveau du début du segment. Pour une température, on se basera sur le 0°C pour fixer la mesure, etc...
En résumé :
Si on se résume, pour faire une mesure, on a besoin :
d'un phénomène physique à mesurer
d'une échelle de mesure ou graduation
d'une valeur de référence.
Dans Arduino il suffit simplement d'appliquer une tension entre 0 et 5V sur une des broches dite « analogique » pour obtenir une valeur entre 0 et 1023correspondant au niveau de la tension présente sur la broche !


Les broches analogiques de la carte Arduino
La carte Arduino UNO est une carte numérique qui possède 20 broches d'Entrée/Sortie numérique (notées E/S) numérotées de 0 à 19. Les broches 0 à 19 sont potentiellement utilisables en broches E/S cependant, certaines broches ne doivent pas, dans la mesure du possible être utilisées en broches E/S :
les broches 0 et 1 sont utilisées par la communication USB donc, les
utiliser pourrait perturber cette communication. En pratique, ne pas les utiliser.
les broches 14 à 19 ont un double rôle : elles peuvent également être utilisées en tant que broches analogiques pour réaliser des mesures. Donc, si possible, ne pas les utiliser en broches numériques...
A savoir : les broches numériques 14 à 19 sont numérotées de 0 à 5 (ou
désignées par A0, A1, A2, A3 et A5) lorsqu'elles sont utilisées en tant que
broches analogiques.
Pour info : les caractéristiques de la « règle à tension » numérique de l'Arduino
6 broches de mesure : disponible sur 6 broches dites analogiques: on peut donc utiliser 6 capteurs en même temps...
une mesure se fait en 100μs environ ce qui permet de réaliser sans aucune difficulté plusieurs centaines voir milliers de mesure par seconde (on peut transformer sa carte Arduino en un petit oscilloscope USB !).
Pleine échelle de mesure de 0 à 5V
la mesure est réalisée par défaut pour une tension comprise entre 0V et 5V. La broche ARef permet au besoin d'utiliser une autre tension de référence (2,5V par exemple), mais en pratique, c'est très peu utilisé.
Une précision de 5mV !
la « règle à tension » dispose 1024 niveaux (ou graduations) soit une
précision de 5mV environ en 5V.
Correspondance entre la graduation et la tension mesurée
La « règle à tension » de l'Arduino, dispose de 1024 graduations numérotées
de 0 à 1023 :
• la graduation 0 correspond au 0V ou 0mV
• la graduation 1023 correspond au 5V ou 5000mV
• la graduation 204 correspond au 204x5000/1023 = 997mV soit 1V
• la graduation nnn correspond à nnn x 5000 / 1023 mV
Un potentiomètre ou résistance variable
Description
Une résistance variable est une résistance... dont on va pouvoir faire varier la valeur. Vous utilisez déjà ce composant dans la vie de tous les jours : le bouton que l'on tourne pour régler le volume d'un appareil, c'est souvent une résistance variable.
La résistance variable est caractérisée par sa résistance maximale, exprimée en Ohms. Elle dispose d'un axe de rotation qui permet de faire varier la résistance.
La résistance variable présente 3 broches : Le principe général d'utilisation d'une résistance variable avec une carte
Arduino va consister :
2 broches correspondant aux broches de la résistance maximale interne, comme une résistance classique,
1 broche qui connectée au « curseur interne» qui permet de faire varier la résistance entre 0 Ohms et la résistance maximale.
Schéma électrique :
Le schéma théorique d'une résistance variable est logiquement le suivant :
Activité tinkerCAD
Activité à rédiger et à rendre via Pronote. compte-rendu
Principe général d'utilisation Le principe général d'utilisation d'une résistance variable avec une carte Arduino va consister : à connecter la résistance principale entre le 0V et le 5V à connecter la broche variable sur une entrée analogique.
Sous TinkerCAD, compléter le schéma suivant :
Les en reliant les extrémités du potentiomètre au +5V et la masse de l'Arduino conformément au schémas ci-contre. Et relier ensuite la borne du milieu sur A0.
PROGRAMME
On souhaite récupérer la valeur brute (entre 0 et 1023) correspondant à la tension entre 0 et 5V présente sur une broche analogique.
Entête (avant le setup)
On va déclarer à ce niveau :
une constante de broche pour la voie analogique : ATTENTION, il faut utiliser le numéro de la broche analogique (entre 0 et 5)
on déclare une variable globale de type int pour stocker le résultat de la mesure.
Fonction setup()
on initialise la communication série avec l'instruction. On utilisera 115200 bauds.
Fonction loop()
on réalise une mesure à l'aide de la fonction analogRead(brocheAnalogique) : le résultat est stocké dans une variable. Ensuite, on affiche le résultat dans le Terminal Série à l'aide de la
fonction Serial.println()
• On réalise ensuite une pause d'une demi-seconde entre 2 mesures
avec l'instruction delay(500).
Ouvrir le Terminal Série et expliquer ce qu'il se passe lorsque l'on change la valeur du potentiomètre