Documente Academic
Documente Profesional
Documente Cultură
Comptences :
C.2.1 Analyser
C.2.3 Dvelopper
But : Afficher le rsultat brut d'une conversion analogique-numrique dans la fentre Terminal du PC et vrifier la conformit des
rsultats obtenus
Pour toute question sur les Convertisseurs analogiques numriques vous pourrez vous appuyer sur le document en cliquant ici.
I-
Prsentation
Ce programme permet de raliser une conversion analogique-numrique avec la carte Arduino et affiche le rsultat brut (une valeur entire
entre 0 et 1023) de la mesure sur le PC lors de l'excution d'un programme. La carte Arduino uno utilise ici, base sur un microcontrleur
dispose d'un convertisseur analogique numrique 10 bits qui permet de convertir la tension prsente sur une entre analogique (entre 0 et 5V
par dfaut) en une valeur entire comprise entre 0 et 1023 (avec 0 pour le 0V et 1023 pour le 5V). La plupart des cartes Arduino disposent
de 5 entres analogiques, certaines en disposent de davantage.
Le langage Arduino permet de raliser trs simplement une telle conversion analogique-numrique 10 bits l'aide de l'instruction
analogRead().
Ce programme utilise les fonctionnalits suivantes :
la connexion srie vers le PC
La conversion analogique numrique 10 bits sur la voie analogique analog 0
II-
Le montage :
Matriel ncssaire :
Lespace de dveloppement Arduino pour diter, compiler et programmer la carte Arduino UNO
Instructions de montage :
Connexion srie entre la carte Arduino et le PC (Port USB)
Broche Analog 0 (=broche 14) en entre Analogique connecte sur la sortie une rsistance variable 10K connecte entre le 0V et
5V.
Le schma thorique du montage :
Carte arduino
UNO
A0
Carte
Arduino
UNO
USB
A
C
III-
Droulement du programme
Le programme se droule de la faon suivante :
Aprs avoir pris en compte les instructions de la partie dclarative,puis aprs avoir excut la partie configuration ( fonction
setup( ) ),le programme bouclera sans fin ( fonction loop ( ) ), excutant de faon rpte le code compris dans la boucle sans fin.
Le droulement du programme
Partie dclarative :
Dclaration des constantes de broches
Dclaration des constantes pour les broches utilises dans le programme : on renomme Voie_0 la broche analogique 0 (broche
numrique 14).
int mesure_brute=0;// Variable pour acquisition rsultat brut de conversion analogique numrique
float mesuref=0.0;// Variable pour calcul rsultat dcimal de conversion analogique numrique
Fonction dinitialisation setup() :
Initialisation de la communication srie avec le PC pour une communication 115200 bauds. Il faudra rgler le terminal ct PC
imprativement sur la mme valeur.
Serial.begin(115200); // initialise connexion srie 115200 bauds
// IMPORTANT : rgler le terminal ct PC avec la mme valeur de transmission
Remarque : Il n'est pas ncessaire de configurer la broche analogique.
Fonction Principale loop()
On commence par mettre le rsultat d'une mesure dans la variable mesure_brute, l'aide de l'instruction analogRead(). On
remarquera ici la simplicit avec laquelle le langage Arduino permet un tel rsultat !
Pour info : une telle mesure prend 100s environ et la carte Arduino peut donc en faire environ 10 000 par seconde ce qui est trs
largement suffisant dans la plupart des cas.
On envoie ensuite vers le PC la valeur ainsi obtenue l'aide de l'instruction Serial.println() qui ajoute galement un saut de ligne.
On ralise une pause entre deux mesures grce l'instruction delay() qui ajoute galement un saut de ligne.
Le programme recommence en boucle les instructions de la fonction loop( ). Le rsultat de la mesure s'affiche de faon rpte
dans la fentre Terminal : faire varier la rsistance variable fait varier galement la mesure.
Ct PC, il faut ouvrir la fentre terminal de l'IDE Arduino : pour ce faire, dans le menu outil , slectionner moniteur srie
(CTRL+Maj+M)
La fentre Terminal s'ouvre alors :
Il faut alors rgler le dbit de communication sur la mme valeur que celle utilise par le programme avec lequel nous allons
programmer la carte Arduino :
Fonctionnement du montage :
Le rsultat de la mesure s'affiche de faon rpte dans la fentre Terminal : faire varier la rsistance variable fait varier
galement la mesure. Une fois le programme programm dans la carte Arduino, le rsultat brut de la mesure doit s'afficher dans
la fentre Terminal : ici, rsultats successifs en faisant varier la valeur de la rsistance du 0V vers le 5V.
//
CONVERSION ANALOGIQUE NUMERIQUE SUR ARDUINO UNO (entre A0)
// --- Que fait ce programme ? --/* Affiche le rsultat brut d'une conversion analogique numrique sur la fentre terminal du PC*/
// --- Fonctionnalits utilises --// Utilise la connexion srie vers le PC
// Utilise la conversion analogique numrique 10bits sur les voies analogiques analog 0,
// --- Circuit raliser --// Connexion srie entre la carte Arduino et le PC (utilise les broches 0 et 1)
//**************** dclaration de variables *******
const int Voie_0=0; //declaration constante de broche analogique
// --- Dclaration des variables globales --int mesure_brute=0;// Variable pour acquisition rsultat brut de conversion analogique numrique
// --- Initialisation des fonctions utilises --//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est excute en premier et 1 seule fois, au dmarrage du programme
void setup() { // debut de la fonction setup()
Serial.begin(115200); // initialise connexion srie 115200 bauds
// IMPORTANT : rgler le terminal ct PC avec la mme valeur de transmission
} //
//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'excute sans fin en boucle aussi longtemps que l'Arduino est sous tension
void loop(){ // debut de la fonction loop()
mesure_brute=analogRead(Voie_0);
// affiche valeur numerique entire ou virgule au format dcimal
Serial.println(mesure_brute);
delay(500); // pause de 500 millisecondes
} // fin de la fonction loop() - le programme recommence au dbut de la fonction loop sans fin
// ********************************************************************************
// --- Fin programme ---
IV-
Mesures:
En effectuant des mesures de tensions au niveau du potentiomtre sur la broche connecte lentre analogique de lArduino UNO, Procdez
aux rglages ncessaires permettant de complter le tableau suivant :
Tension prsente en A0
0V
1V
2V
3V
4V
5V
Sachant que les deux tensions de rfrences du convertisseur analogique numrique de lArduino Uno sont 0v (pour Vref-) et 5V (pour
Vref+), dterminer les rsultats thoriques pour chacune des mesures effectues prcdemment puis complter le tableau suivant :
Tension prsente en A0
Rsultat de la conversion (lisible dans la fentre moniteur srie
0V
1V
2V
3V
4V
5V
Que pouvez-vous conclure quant lexprimentation effectue ?
Quelle est la plus petite tension pouvant tre mesure thoriquement ? Comment sappelle cette tension ? Pouvez vous pratiquement
effectuer cette mesure ?