Fiche N°5 : gestion d'une entrée analogique
Lecture d'un potentiomètre et calcul de la valeur de la tension correspondante.
Lecture de la valeur d'un capteur analogique (température)
I. Quelques notions sur la carte DangerShield et le moniteur série
Nous allons utiliser le module DangerShield (ci-dessous, à droite)
|
Demandez au professeur de mettre la carte DangerShield sur la carte Arduino. |
Cette carte se compose de capteurs : | En gras les entrées/sorties Arduino utilisées : |
Et d’afficheurs :
|
Le moniteur série
Arduino possède un outil très pratique pour déboguer un programme (déboguer = trouver les erreurs ou contrôler un programme). Il s'agit d'une liaison série qui peut envoyer les informations que l'on veut et que l'on peut lire ensuite à l'aide du logiciel Arduino sur notre ordinateur.
Comment ça fonctionne :
Paramétrage dans un programme arduino :
Dans le setup il faut mettre:
Serial.begin(9600); // mise en route de la liaison série à 9600 bauds//
9600 correspond à la vitesse de communication. 9600 bauds est une vitesse rapide fiable
Dans le void loop :
Pour afficher le texte "le contenu de ma variable est : "
Serial.print("le contenu de ma variable est : ");
Pour afficher le contenu d'une variable (par exemple ici elle s'appelle var1)
Serial.print(var1);
Pour aller à la ligne (sinon chaque "Serial.print" affiche les données les unes à côté des autres) :
Serial.println(var1);
Pour ouvrir le moniteur série (il faut une carte arduino raccordée bien sûr!) :
soit on clique sur l’icône:
soit sur le menu Outils :
Si le contenu de la variable var1 est 26, on obtiendra dans le moniteur série :
II. Lecture d'un signal analogique (potentiomètres)
Ouvrir le fichier « dangershield_potards.txt », récupérer le programme contenu dans le fichier et testez le.
Une fois le programme compilé et téléchargé, ouvrir le moniteur série (menu « outils » puis « moniteur série »).
1. Relever les valeurs minimum et maximum. Combien cela fait-il de valeurs différentes ?
2. A partir du programme Arduino, donner le nom de la fonction qui permet de « lire » une entrée analogique.
3. A l'aide de la documentation Arduino, trouver sur combien de bit les variables de type « entier » (int) sont-elles codées ?
4. En déduire le nombre de valeurs différentes disponibles pour ce type de variable.
5. A partir des valeurs minimum et maximum relevées précédemment, dire sur combien de bits travaille le convertisseur analogique/numérique de la carte Arduino ?
III. Modification du programme
Objectif : on va essayer d'afficher non plus le nombre entier issu du convertisseur mais la valeur réelle de la tension (pour le curseur 1 seulement).
Comme on va faire des calculs on va utiliser une variable permettant d'avoir des chiffres avec virgule. On va choisir le type « float ».
1. A l'aide de la documentation Arduino, donner les caractéristiques des variables de type « float »
2. Calculer la constante du convertisseur de telle sorte que la valeur issue du convertisseur multipliée par cette constante nous donne la tension présente sur l'entrée (la tension peut varier entre 0V et 5V) : const_can * entrée analogique = tension.
Remarques :
|
Modifiez le programme :
- définissez 2 variables flottantes (tension1 et const_cna et en même temps affecter 0 à tension1 et la valeur calculée précédemment à const_can)
- ajouter la ligne du calcul de la tension (du genre : variable 1 = variable 2 * variable 3).
- envoyer le résultat sur la liaison série à la place de la valeur « potentiom1 »
- Ne pas oublier le point virgule à la fin des lignes
3. Essayer le programme. Faites valider par le professeur
IV. Lecture de la température (capteur TMP36 de la carte DangerShield)
Sur la carte « danger shield » il y a un capteur de température TMP36. Ce capteur rentre sur le port 4 (PIN 4) de la carte Arduino (entrée analogique au fonctionnement identique à celle utilisée par le programme précédent).
1. En vous inspirant du programme précédent, faire le programme permettant d'envoyer sur la liaison série la valeur analogique reçue par la carte arduino (sur un nombre de type « entier »). Le programme doit être clair et bien commenté. Faites valider par le professeur
2. Modifier maintenant le programme pour afficher dans le « moniteur série » la valeur en °C. (la température en °C est donnée par la formule suivante : Temp = ( mesure en mV – 500)/10. Faites valider par le professeur