Sunteți pe pagina 1din 6

Station mto

Mesure des tempratures


Mise en uvre du convertisseur de lArduino UNO
Objectifs :
-

Mise en uvre dun microcontrleur (Cblage, programmation)


Dcouverte de la fonction Conversion Analogique-Numrique
Caractrisation et mise en uvre dun CAN

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

La carte Arduino UNO

Un potentiomtre 10K/10 tours et 3 cbles


Un voltmtre

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-

Explications et mise en uvre du programme :

Structure globale du programme


Ce programme simple comprend :

une entte dclarative


une partie configuration qui ne sera excute qu'une fois (fonction setup( ) )
une partie constitue d'une boucle sans fin que le programme rptera l'infini ( fonction loop( ) ) : c'est le coeur du programme.

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).

const int Voie_0=0; //declaration constante de broche analogique


Dclaration des variables globales

Dclaration des variables globales du programmes :


o Dclaration des variables globales utilises pour la conversion analogique-numrique : on dclare une variable entire
destine stocker le rsultat de la mesure (valeur comprise entre 0 et 1023).

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() :

On initialise les diffrentes fonctionnalits utilises :

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.

// acquisition conversion analogique-numerique (CAN) sur la voie analogique mesure_brute=analogRead(Voie_0);

On envoie ensuite vers le PC la valeur ainsi obtenue l'aide de l'instruction Serial.println() qui ajoute galement un saut de ligne.

// affiche valeur numerique entire ou virgule au format dcimal Serial.println(mesure_brute);

On ralise une pause entre deux mesures grce l'instruction delay() qui ajoute galement un saut de ligne.

delay(500); // pause de 500 millisecondes

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.

Se reporter aux commentaires prsents dans le programme pour plus de dtails.

Mise en uvre du programme :


Prparation du montage et programmation de la carte Arduino :

Effectuer le cblage comme indiqu plus haut.


Ensuite, programmer la carte Arduino avec ce programme (en bas de page) selon la procdure habituelle

Prparation du Terminal ct PC dans le logiciel Arduino

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.

Le programme complet en langage Arduino :

//
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

Rsultat de la conversion (lisible dans la fentre moniteur srie


En dcimal
En binaire

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 ?

S-ar putea să vă placă și