Vous êtes sur la page 1sur 30

20122013

UNI
VERSI
THASSAN 1ERSETTAT
ECOLENATI
ONALEDESSCI
ENCESAPPLI
QUES
KHOURI
BGA

2M ANNECYCLEI
NGNI
EUR
GNI
EELECTRI
QUE

MI
NI
PROJ
ET

Y
ACI
NEA.
AMKAS
S
OU

MI
NI
PROJ
ET

CAPTEURDETEMPRATURE

CAPTEURDETEMPRATURE

MI
NI
PROJ
ET:
THERMOMETREABAS
EDUARDUI
NO
REALI
SERPAR

ENCADREPAR

YACI
NEABDS
S
AL
AM
AMKAS
S
OU

DR.
N.
ELBARBRI

20122013

La

temprature constitue une information importante dans plusieurs processus


industriels et de laboratoire. Elle intervient comme une grandeur principale dont la valeur
doit tre connue avec prcision ou comme paramtre influant sur la qualit dautres
mesures. Sa valeur sera utilise pour la correction ou la compensation. Certains procdes
industriels ou biologiques favorisent des environnements de tempratures spcifiques, ainsi
la rgulation de temprature simpose. Cette rgulation passe par la mesure de temprature
de manire continue.
Les possibilits offertes par lutilisation de systme base de microprocesseur ont
permis de traiter les signaux issus des capteurs numriquement (linarisation et conversion).
Ceci a conduit des appareils prcis et bon march. Les systmes base de
microcontrleurs constituent la solution la plus attractive.
Dans ce travail nous avons fait la conception dun thermomtre base de l
ARDUINO UNO. Notre thermomtre utilise un capteur intgr LM335Z pour la mesure
de temprature. Les calculs et la conversion ncessaires sont confis au microcontrleur, et
laffichage sur des afficheurs 7 segments ou Afficheur LCD , et les donnes sont trait par
LabView on utilisons la liaison srie .

La temprature est une grandeur physique mesure laide dun thermomtre et tudie en thermomtrie.
Dans la vie courante, elle est relie aux sensations de froid et de chaud, provenant du transfert de chaleur entre le
corps humain et son environnement. En physique, elle se dfinit de plusieurs manires, comme fonction croissante du
degr dagitation thermique des particules, par lquilibre des transferts thermiques entre plusieurs systmes. La
temprature est une variable importante dans dautres disciplines. Il existe plusieurs mthodes de mesure de
temprature parmi ces mthodes la mthode lectrique.

En se basant sur la variation thermique de la valeur dune rsistance, sur leffet Seebeck ou sur la sensibilit
thermique de la frquence doscillation dun quartz.
Ces mthodes ont lavantage dune plus grande souplesse demploi.

Le fonctionnement des thermomtres rsistance et des thermistances est bas sur un mme phnomne
physique, savoir la variation de la rsistance lectrique dun conducteur avec la temprature.

Thermomtres rsistance :
Dune faon gnrale la rsistivit dun mtal ou dun alliage dpend de la temprature :

0 : rsistivit du matriau.
: sensibilit thermique.

Relation rsistance temprature :

R(0) : la rsistance 0C
A, B, C : paramtres qui dpendent de matriaux.

Thermomtres thermistance :
Une thermistance est un agglomrat doxydes mtalliques fritts, cest--dire rendus compacts
par haute pression exerce temprature leve, de lordre de 150 bars et 1000 C.
Il existe deux types de thermistance. Les CTN coefficient de temprature ngatif, et les CTP
coefficient de temprature positif.

Relation rsistance-temprature :

Avec

T0 =25C
3000K<B<5000K
.

Principe de
thermocouple :

Fig.I.1.1 Principe de thermocouple

Deux fils composs de mtaux diffrents sont raccords leurs extrmits et que lune delles est
chauffes, il se produit une circulation de courant continu dans le circuit. Cest leffet thermolectrique.
Aprs des recherches de linarit, de valeur de tension et de gamme de temprature,
les combinaisons les plus courantes sont.

Premier mtal

Second mtal

symboles

type

Limite en C

Force lectromotrice en V

Cuivre (Cu)

Constantan (C)

Cu/C

-192 +400

4277 100C

Fer (Fe)

Constantan (C)

Fe/C

-194 +870

27390 500C

Chromel (Cr)

Constantan (C)

Cr/C

+1000

37000 500C

Chromel (Cr)

Alumel (Al)

Cr/Al

+1370

41310 1000C

Platine (Pt)

Rhodium (Rh)

Pt/Rh

SRB

+1700

10450 1000C

Lun des thermocouples le plus utilis est le Chromel-Alumel ou thermocouple de type


K.il possde une plage de mesure tendue (-100 +1370 C), une force lectromotrice
importante (41310 V
1000 C avec soudure froide 0C) et une courbe linariser pour obtenir sur toute ltendue de
mesure des prcisions meilleures que 0.2%.
ALUMEL : est un alliage compos de 95% de nickel, 2% daluminium,2% de
manganse et 1% de silicium.
CHROMEL : est un alliage compos de 80% de nickel et 20% de chrome.

Lm335 est un capteur de temprature prcis est facilement calibr. Il fonctionne comme
une diode zener dont la tension de claquage est directement proportionnelle la temprature
absolue avec un facteur proportionnel de +10mV/K. Avec une impdance dynamique inferieur
1.
Il peut fonctionner de -40C 100C sous un courant constant pouvant varier de 400A 5mA.
La tension ces bornes est de 2,98V 25C, le montage le plus utilis pour ce composant est
donne par la (figure I.1.3.1)

Fig. I.1.3.1

Arduino est un circuit imprim en matriel libre (dont


les plans sont publis en licence libre) sur lequel se trouve
un microcontrleur qui peut tre programm pour analyser
et produire des signaux lectriques, de manire effectuer
des tches trs diverses comme la domotique (le contrle
des appareils domestiques - clairage, chauffage), le
pilotage d'un robot, etc. C'est une plateforme base sur une
interface entre/sortie simple. Il tait destin l'origine
principalement mais pas exclusivement la programmation
multimdia interactive en vue de spectacle ou d'animations
artistiques. C'est une partie de l'explication de la descendance de son interface de programmation de
Processing, lui-mme inspir de l'environnement de programmation Wiring1.
Arduino peut tre utilis pour construire des objets interactifs indpendants (prototypage rapide), ou
bien peut tre connect un ordinateur pour communiquer avec ses logiciels (ex. : Macromedia Flash,
Processing, Max/MSP, Pure Data, SuperCollider). En 2011, les versions vendues sont pr-assembles.
Des informations sont fournies pour ceux qui souhaitent assembler l'Arduino eux-mmes.
Le projet Arduino a reu un titre honorifique l'Ars Electronica 2006, dans la catgorie Digital
Communities.

Un module Arduino est gnralement construit autour d'un microcontrleur Atmel AVR
(ATmega328 ou ATmega2560 pour les
versions rcentes, ATmega168 ou
ATmega8 pour les plus anciennes), et
de composants complmentaires qui
facilitent la programmation et
l'interfaage avec d'autres circuits.
Chaque module possde au moins un
rgulateur linaire 5V et un oscillateur
quartz 16 MHz (ou un rsonateur
cramique dans certains modles).
Le microcontrleur est pr-programm
avec un bootloader de faon ce qu'un
programmateur ddi ne soit pas
ncessaire.
Les modules sont programms au
travers d'une connexion srie RS-232,

mais les connexions permettant cette programmation diffrent selon les modles. Les premiers Arduino
possdaient un port srie, puis l'USB est apparu sur les modles Diecimila, tandis que certains modules
destins une utilisation portable se sont affranchis de l'interface de programmation, relocalise sur un
module USB-srie ddi (sous forme de carte ou de cble).
L'Arduino utilise la plupart des entres/sorties du microcontrleur pour l'interfaage avec les autres
circuits. Le modle Diecimila par exemple, possde 14 entres/sorties numriques, dont 6 peuvent
produire des signaux PWM, et 6 entres analogiques. Les connexions sont tablies au travers de
connecteurs femelle HE14 situs sur le dessus de la carte, les modules d'extension venant s'empiler sur
l'Arduino. Plusieurs sortes d'extensions sont disponibles dans le commerce.
Les modules non officiels BoArduino et Barebones , compatibles avec la technologie Arduino,
utilisent des connecteurs mle pour une utilisation aise avec des plaques de test.

Le logiciel de programmation des modules Arduino est une application Java, libre et multi-plateformes,
servant d'diteur de code et de compilateur, et qui peut transfrer le firmware et le programme au travers de
la liaison srie (RS-232, Bluetooth ou USB selon le module). Il est galement possible de se passer de
l'interface Arduino, et de compiler les programmes via l'interface en ligne de commande.
Le langage de programmation utilis est le C++, compil avec avr-g++ 3, et li la bibliothque de
dveloppement Arduino, permettant l'utilisation de la carte et de ses entres/sorties. La mise en place de
ce langage standard rend ais le dveloppement de programmes sur les plates-formes Arduino, toute
personne maitrisant le C ou le C++.

La fonction conversion analogique-numrique consiste transformer une grandeur lectrique en


une grandeur numrique exprime sur N bits. Ce convertisseur est compos de :
Un multiplexeur analogique 8 entres maximum permet de slectionner lentre
analogique convertir.
Un chantillonneur bloqueur permet de mmoriser la tension analogique
convertir pendant la conversion.
Un convertisseur analogique numrique de 10 bits.

Le CAN convertit le signal analogique prsent sur une de ses 8 entres en son quivalent
numrique, cod sur 10 bits. Le signal numrique peut donc prendre 1024 valeurs possibles.
Les pattes AN2 et AN3 peuvent tre utilises comme rfrences de tension ou comme entres
analogiques standard. Les rfrences de tension tant dans ce dernier cas prises sur les tensions
dalimentations du ATmega :Vdd et Vss.(Vdd pour Vref+ et Vss pour Vref-) .
La conversion se passe en 2
temps :
1er temps le signal convertir est appliqu sur lentre convertir, ce signal doit

tre prsent
au moins pendant le temps Tacq(temps dacquisition environ 20S pour
5V ).
2me temps la conversion, approximations successives. Le temps de conversion
minimum est
de 12 TAD (TAD cest le temps de conversion dpendant de lhorloge
interne, typiquement
1,6S).

Valeurs reprsentes :
Les relations qui lient les valeurs analogiques et les reprsentations numriques sont :

Vref- : tension minimale analogique (rfrence ngative). Vref+ : tension maximale analogique
(rfrence positive). VIN : tension dentre numriser.
N : valeur numrique sur 10 bits.

Dans ce chapitre nous allons expliquer les diffrentes oprations et traitements effectues sur la
tension issus du capteur de temprature(LM335) pour la convertir en une valeur numrique gale la
valeur de la temprature afficher.

:
Le schma synoptique global donn dans la figure(III.1).

Bloque dalimentation

Affichage

A
R
D
U
I
N
O
R

Capteur de
Temprature

Fig. (III.1)

LabView

La tension issue du LM335 qui est une conversion dune temprature en une tension, qui
sera appliqu lentre du contrleur. Ce dernier est programm pour gnrer et afficher le rsultat des
grandeurs mesures sur afficheur 7 segments et lenvoyer par srie au LabView.

Pour affich le rsultat des grandeurs mesures on utilise des dcodeurs BCD (dcodeur
binaire/dcimale) est des afficheurs 7 segments diodes lectroluminescentes.

Constitution gnrale dun afficheur 7 segments:


Il est constitu de 7 segments lumineux rectangulaires, correspondant chacun une diode
electroluminiscente.les points dcimaux correspondent chacun une diode lectroluminescente de
section circulaire.
Il existe deux types dafficheurs 7 segments diodes lectroluminescentes.
a. Les afficheurs cathodes communes:
Ils sont constitus de 7 diodes lectroluminescentes dont les cathodes sont relies entre elles. Une
rsistance doit tre place en srie avec chacune des DEL compte tenu de leurs tensions de
fonctionnement.
Les cathodes communes doivent tre relies au potentiel le plus bas c'est--dire 0.
Il faudra donc un niveau logique actif 1 pour commander un afficheur cathodes communes.
b. Les afficheurs anodes communes :
Ils sont constitus de 7 diodes lectroluminescentes dont les anodes sont relies entre elles.
Une rsistance doit tre place en srie avec chacune des DEL compte-tenu de leurs tensions de
fonctionnement.
Les anodes communes doivent tre relies au potentiel le plus haut du circuit. Il faudra donc un
niveau logique actif 0 pour commander un afficheur anodes communes.
Dans notre ralisation en utilisent un afficheur anodes communes ncessitant un niveau logique
0 on utilisera le dcodeur 74LS47.

Se prsente sous forme dun circuit intgr 16 broches, il dispose de sorties collecteurs ouverts
autorisant une liaison directe avec les afficheurs anode commune, des entre supplmentaires sont
aussi prvues :
LT Lamp Test qui permet de vrifier le fonctionnement de lafficheur en allument tous les
segments si BI est 1 .
BI/RBO Blanking Input qui permet leffacement des segments de lafficheur quelque soit ltat des
autres entres.
RBI Ripple Blanking Input qui permet leffacement des 0 gauche si A, B, C, D sont 0
.

La plupart des crans LCD de ce genre se pilotent par une librairie trs clbre LiquidCrystal qui
ncessite 6 pins de larduino pour tre contrler. L'avantage de l'cran de FM1602C c'est qu'il peut tre
contrler par une simple liaison srie (seulement le TX, le RX n'tant pas utile vu que nous n'avous pas
de retour d'informations) en plus des pins classique prsent sur les autres crans LCD du march.
Il est disponible sous plusieurs couleurs (couleur de l'criture sur couleur de fond) :

Noir sur Vert


Rouge sur Noir
Blanc sur Noir
Jaune sur Bleu

Voil la liste des caractristiques techniques de FM1602C :

Le PIC 16F88 intgr utilise l'UART de la carte pour optimiser la prcision de la communication
Dbit en bauds de la liaison srie rglable : 2400/4800/9600/14400/19200/38400. (9600 par
dfaut)
Vitesse de traitement jusqu' 10 MHz
La mmoire tampon "entrante" peut stocker jusqu' 80 caractres
Le transistor de rtroclairage peut grer jusqu' 1 Ampre
La modulation de la largeur d'impulsion du rtroclairage permet de commander directement la
luminosit du rtroclairage et la consommation lectrique
Le texte d'amorage peut tre modifi/activ/dsactiv via le microprogramme.

Pour utiliser ce module il suffit de lui envoyer des commandes dcrit dans ce document. Bien sr
faignant comme nous sommes, nous allons plutt utiliser cette librairie.

Tous les bloques du circuit sont alimentes par une tension +5V. Cette tension est gnre partir
du rseau 220V par le circuit suivant.
7805
VI

VO

5V

GND

C1

220V

9V

C2

C3

0V

(III.2.2) : schma lectrique de lalimentation

Le schma lectrique de lalimentation contient quatre tages fonctionnels sont :

Etage abaisseur : contient le transformateur abaisseur 9V, qui permet de passer dune
tension sinusodale de valeur leve une tension de mme forme mais de valeur plus
faible.
Etage redresseur : contient le pont de Greatz constitu par quatre diodes qui sert gard
que la partie positive (ou ngative) de la sinusode dentre.
Etage de filtrage : form de C1 (C1=2200F) pour rle de maintenir la tension de sortie
suprieure une certaine valeur. Les condensateurs (C2=220nF, C3=10F) sont conseilles
par le constructeur pour rduire les bruits HF et viter tout risque doscillation parasite du
rgulateur.
Etage de rgulation : contient le rgulateur de tension 7805, qui assure de gard la tension de
sortie constante quelque soit le courant demand.

Pour mesurer une temprature, nous avons le choix entre de nombreux capteurs : rsistances
coefficient de temprature positif ou ngatif, thermocouple, etc.
Linconvnient de la plupart de ces capteurs est que leur tension de sortie ne varie pas
linairement en fonction de la temprature, ce qui oblige une correction pour connaitre avec prcision
la temprature exacte.
Aujourdhui, il existe des capteurs semi-conducteur de grande prcision et sortie linaire, bon
march et faciles demploi. Exemple, le circuit LM335.

Capteur LM335 :
La tension en sortie de ce capteur est proportionnelle la temprature. Elle augmente de 10mV
par degr Kelvin.

Figure (III.2.3)

La tension entre les bornes du LM 335 est fonction de la temprature.

A 25C est avec un courant de 1mA circulant dans le capteur(LM335), la valeur typique de la tension
est de 2,98V. La valeur minimum est de 2,92V et la valeur maximum est de 3,04V
La valeur de la rsistance R4 doit tre calcule en fonction de +Vcc pour que le capteur soit
parcouru par un courant de 1mA. Voici la formule utilis pour le calcul de R4.

Le potentiomtre 10K permet de rgler le dcalage et dtalonner le capteur.


La relation entre la tension et la temprature est donne par la formule suivante :

VT : tension dlivre par le capteur


T : temprature ambiante
VT0 : tension de rfrence pour une temprature T0. Pour T0=25 C, VT0=2,98V on obtient :

Le capteur lm335 est dj talonner et linaris alors ont utilis justement la rsistance R4 pour faire
prciser la valeur de temprature afin dobtenir une temprature rel
Procd pratique dtalonnage : Puisque le capteur est linaire 10mv/K alors aprs la ralisation du
systme on pose le capteur dans leau glac de 0 puis on ajuster le potentiomtre pour obtenir 0 degr

Notre programme est divis par tris partie principale ,le programme de calcule de temprature le
programme daffichage simple (7seg ou Led matrix ou LCD) et le programme dacquisition de donnes par
Labview

LARDUINO possde un convertisseur analogique numrique sur 10 bit avec 8 canaux dentrs
analogiques. Seulement un entre eux utilis(A0). Le convertisseur 10 bits ceci donne un nombre de pas
de mesure gale 1024. Les tensions de rfrences minimale et maximale sont Vss et Vdd .

/*
* XTemp a tempeter sensor project By yAcien & Sliman & Omar
* ENSAK 2012
*/

float tempC = 0, tempK =0, tempF =0;


int raw;
// dectaration des variable utilizes

void setup()
{
pinMode(0,INPUT);
//definir lIO A0(analgie) comme entre
}
void loop()
{
//Lire lentre A0
raw=analogRead(0);

//convertir de voltage a temprature en K


tempK = raw * (5.0/1023.0) * 100;
// convertir de K a C
tempC = tempK - 273.15;
// convertir de K a F
tempF = ((tempK ) * 9 / 5) - 459.67;
delay(1000);
}

Pour faire la comunication arduino utilise la biblio Serial :


initialization :
void setup()
{
Serial.begin(9600);
}

Et la fin du fonction loop on donne la valeur de temprature par communication srie sous
forme string et par la frquence de 1hz afin davoir une information par seconde dans le VI de
LabView.
Serial.println(tempK);

/*
* XTemp a tempeter sensor project By yAcien & Sliman & Omar
* ENSAK 2012
*/
#include <LiquidCrystal.h>
float tempC = 0, tempK =0, tempF =0;
int raw;
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int backLight = 13;
void setup()
{
Serial.begin(9600);
pinMode(0,INPUT);
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH);
//inistialinsing
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Initialisation..");
lcd.setCursor(0,1);
lcd.print("Temp Acquisition");
lcd.setCursor(0,0);
delay(3000);
lcd.clear();
lcd.print("
BY
");
lcd.setCursor(0,1);
lcd.print("
yAcine");
delay(1000);
lcd.print("
BY
");
lcd.setCursor(0,1);
lcd.print("
Sliman");
delay(1000);
lcd.print("
BY
");
lcd.setCursor(0,1);
lcd.print("
Omar");
delay(1000);
}
void loop()
{
raw=analogRead(0);
//V 2 K
tempK = raw * (5.0/1023.0) * 100;
//K 2
tempC
//K 2
tempF

C
= tempK - 273.15;
F
= ((tempK ) * 9 / 5) - 459.67;

Serial.println(raw);
//Print to serial port
Serial.print("Celsius: ");
Serial.println(tempC);
Serial.print("kelvein : ");
Serial.println(tempK);

Serial.print("Fahrenheit: ");
Serial.println(tempF);
Serial.println();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Celsius:");
lcd.setCursor(10,0);
lcd.print(tempC);
lcd.setCursor(0,1);
lcd.print("kelvein :");
lcd.setCursor(10,1);
lcd.print(tempK);
delay(1000);
}

Le VI de Read de COM9 (Arduino est li COM9 par son circuit de communication USB)

Pour simplifier le programme final on utilise de VI comme SubVI ;

Programme principale :

Llaboration de ce modeste travail nous a permis daccder plusieurs domaines.


Lutilisation du ARDUINO nous a introduits au domaine de C, leurs mises en uvre et
leur systme de dveloppements ainsi que les diffrentes fonctionnalits et avenages quils
offrent.
Le LM335 utilis pour la mesure une caractristique linaire sur un grand
intervalle de temprature. Ce dernier a un temps de rponse trs grand.
Lutilisation du microcontrleur nous a permis la ralisation de la conversion
numrique et lacquisition des donnes en utilisant la possibilit qua lArduino pour effectuer des
calculs.
Ce travail nous a permet aussi dapprendre le LabView ds les instrument
virtuel et aussi lutilisation de communication srie .

Cours du capteur et interfaage ,Pr. N. El BARBRI , GE ENSA Khouribga


http://fr.wikipedia.org/wiki/Temp%C3%A9rature
Gwenalle TOULMINET-asi-2002-2003 DOMINIQUE OTTELO.
National semi-conducteur. DATASHEET LM135/LM225/LM335
cf RIVALIN Georges-2001
http://premiumorange.com/daniel.robert9/Digit/Pratique/Digit_14PS3.html
Arduino.cc
http://fr.wikipedia.org/wiki/Arduino
Acquisition de donnes et traitement de signaux NI LabVIEW
,http://www.ni.com/labview/applications/daq/f/