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