AP2.1: Découverte de la programmation informatique à l`aide d
Transcription
AP2.1: Découverte de la programmation informatique à l`aide d
STI2D Option SIN Première AP2.1: Découverte de la programmation informatique à l'aide d'Arduino Fiche N°6 : 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) 1. 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 : 3 potentiomètres linéaires (slider) – entrées analogiques A0, A1, and A2. 1 capteur de lumière – entrée analogique A3 1 capteur de température - entrée analogique A4 3 boutons poussoirs – entrées numériques (TOR) D10, D11, and D12. Et d’afficheurs : • • • 2 LEDs classiques - pins 5 and 6 (sorties analogiques D5 et D6). 1 afficheur 7 segments (An 8-bit shift register set up to control a blue 7-segment LED). 1 buzzer et capteur de clap (bruit court et sec) : One is used as a speaker, the other is connected to analog pin A5 and can be used as a knock sensor 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 : Dans la fonction setup() il faut déclarer cette liaison série : Serial.begin(9600); // mise en route de la liaison série Et dans la boucle loop(), pour envoyer par exemple une valeur (mettons la variable « titi »), il suffit d'écrire : Serial.print(titi); ou Serial.println(titi); // println rajoute un saut de ligne la valeur de la variable « titi » s »affichera dans le moniteur (menu « outils » puis « moniteur série »). 2. 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 »). Relever les valeurs minimum et maximum. Combien cela fait-il de valeurs différentes ? AP2.1 Fiche 6.odt 2/4 …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… A partir du programme Arduino, donner le nom de la fonction qui permet de « lire » une entrée analogique. …………………………………………………………………………………………… …………………………………………………………………………………………… A l'aide de la documentation Arduino (classeur ou internet), trouver sur combien de bit les variables de type « entier » (int) sont-elles codées ? …………………………………………………………………………………………… En déduire le nombre de valeurs différentes disponibles pour ce type de variable. …………………………………………………………………………………………… 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 ? …………………………………………………………………………………………… 3. 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 ». A l'aide de la documentation Arduino (classeur ou internet), donner les caractéristiques des variables de type « float » : …………………………………………………………………………………………… …………………………………………………………………………………………… 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. Remarque : vous pouvez vérifier si votre constante est juste en calculant avec la valeur intermédiaire de 512 qui correspond à 2,5V. …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… AP2.1 Fiche 6.odt 3/4 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 Essayer le programme. Faire valider par le professeur Validation professeur : 4. 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). 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é. Faire valider par le professeur Validation professeur : Modifier maintenant le programme pour afficher dans le « moniteur série » la valeur en °C. température en °C est donnée par la formule suivante : Temp = ( mesure en mV – 500)/10 Faire valider par le professeur AP2.1 Fiche 6.odt (la Validation professeur : 4/4