Acquérir l'image d'une entrée analogique (analogRead) : potentiomètre ou autre capteur analogique
Les pins utilisables pour des entrées analogiques
Afin d'acquérir l'image d'une entrée analogique comme par exemple l'image de la position angulaire d'un potentiomètre ou l'image de la mesure d'un capteur de température, ce dernier doit être branché sur un des pins repérés de A0 à A5, qui peuvent être configurés comme entrée analogique (voir image ci-contre).
La valeur de la tension comprise entre 0V et +5V, acquise sur ce pin, sera immédiatement convertie en entier compris entre 0 et 1023 (210-1 = 1023) par un CAN (Convertisseur Analogique Numérique) de 10 bits : 0 si acquisition=0V, ou 1023 si acquisition=5V.
Exemple du câblage d'un potentiomètre branché sur le pin entrée analogique A0
Dans le montage ci-dessous d'un potentiomètre (voir son fonctionnement), ou d'un capteur de température LM35DZ ou TMP36, alimenté à ces bornes (les 2 broches extrêmes), la tension sur le pin entrée analogique A0 (broche centrale du composant) est comprise entre 0V et +5V.
NB1 : ici, il n'y a pas besoin de résistance supplémentaire (contrairement à un bouton poussoir), car le potentiomètre ou le capteur sont déjà des résistances variables (R3).
NB2 : attention, les capteurs de température sont polarisés. Leurs broches extrêmes 1 et 3 ont un sens (voir photo ci-dessous).
NB3 : pour les capteurs de température, la valeur acquise sur le pin entrée analogique doit être traduite :
- Le capteur LM35DZ mesure des températures positives avec un gain de 100°/V ;
- Le capteur LM35CZ mesure des températures entre -40°C et 110°C avec un gain de 100°/V ;
- Le capteur TMP36 mesure des températures entre -40°C et 150°C avec un gain de 100°/V et un offset de 0,5V (c'est-à-dire que 0°C correspond à 0,5V).
Structure du code
• dans l'entête déclarative : déclarer les variables associées au numéro du pin où est branchée une entrée analogique telle qu'un potentiomètre (Potpin) ou un capteur de température (Temppin) ainsi qu'à l'image de la tension (Potvaleur ou Tempvaleur) acquise sur ce pin entrée analogique ;
Attention à la casse des noms de variable : « Potpin » est différent de « potpin » !
• dans la fonction void setup() : définir le pin utilisé, comme une entrée, à l'aide de la fonction « pinMode »
• dans la fonction void loop() : acquérir (ou lire) l'image de l'entrée analogique (l'image de la position angulaire d'un potentiomètre ou l'image de la température du capteur) à l'aide de la fonction « analogRead ».
Code pour acquérir l'image de la position angulaire d'un potentiomètre
char Potpin = A0 ; //déclare la variable Potpin comme une chaîne de caractère de valeur A0 (repère du pin utilisé par le potentiomètre)
int Potvaleur ; // déclare la variable Potvaleur comme un entier (valeur qui sera acquise sur le pin du potentiomètre)
void setup() {
pinMode(Potpin,INPUT); // définit le pin Potpin (ici A0) comme une entrée
}
void loop() {
Potvaleur = analogRead(Potpin); // acquiert (ou lit) l'image de l'entrée analogique Potpin (car la valeur de la tension comprise entre 0V et +5V sera immédiatement convertie en entier compris entre 0 et 1023), puis affecte cette valeur à la variable Potvaleur
}