Arduino Capteur de Temperature

download Arduino Capteur de Temperature

of 30

Transcript of Arduino Capteur de Temperature

  • 8/11/2019 Arduino Capteur de Temperature

    1/30

  • 8/11/2019 Arduino Capteur de Temperature

    2/30

  • 8/11/2019 Arduino Capteur de Temperature

    3/30

  • 8/11/2019 Arduino Capteur de Temperature

    4/30

  • 8/11/2019 Arduino Capteur de Temperature

    5/30

    La temprature constitue une information importante dans plusieurs processusindustriels 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 .

  • 8/11/2019 Arduino Capteur de Temperature

    6/30

    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 detemprature 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 rsistancetemprature :

    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.

  • 8/11/2019 Arduino Capteur de Temperature

    7/30

    Relation rsistance-temprature :

    Avec T0 =25C

    3000K

  • 8/11/2019 Arduino Capteur de Temperature

    8/30

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

  • 8/11/2019 Arduino Capteur de Temperature

    9/30

    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 programmationmultimdia 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 DigitalCommunities.

    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), etde 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,

  • 8/11/2019 Arduino Capteur de Temperature

    10/30

    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 peuventproduire 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++.

  • 8/11/2019 Arduino Capteur de Temperature

    11/30

    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 doittre prsent

    au moins pendant le temps Tacq(temps dacquisition environ 20S pour5V ).

    2me temps la conversion, approximations successives. Le temps de conversionminimum est

    de 12 TAD (TAD cest le temps de conversion dpendant de lhorloge

    interne, typiquement 1,6S).

  • 8/11/2019 Arduino Capteur de Temperature

    12/30

    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

    DU

    Capteur de I

    Temprature N

    O

    R

    3 LabView

    Fig. (III.1)

  • 8/11/2019 Arduino Capteur de Temperature

    13/30

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

  • 8/11/2019 Arduino Capteur de Temperature

    14/30

    La plupart des crans LCD de ce genre se pilotent par une librairie trs clbre LiquidCrystal quincessite 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 pasde 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 dansce document.Bien srfaignant comme nous sommes, nous allons plutt utilisercette librairie.

    http://arduino.cc/en/Tutorial/LiquidCrystalhttp://www.sparkfun.com/datasheets/LCD/SerLCD_V2_5.PDFhttp://arduino.cc/playground/Code/SerLCDhttp://arduino.cc/playground/Code/SerLCDhttp://www.sparkfun.com/datasheets/LCD/SerLCD_V2_5.PDFhttp://arduino.cc/en/Tutorial/LiquidCrystal
  • 8/11/2019 Arduino Capteur de Temperature

    15/30

    2

    GND

    Tous les bloques du circuit sont alimentes par une tension +5V. Cette tension est gnre partir

    du rseau 220V par le circuit suivant.

    1VI

    7805VO

    35V

    220V 9V

    C1 C2C3

    0V

    (III.2.2) : schma lectrique de lalimentation

  • 8/11/2019 Arduino Capteur de Temperature

    16/30

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

  • 8/11/2019 Arduino Capteur de Temperature

    17/30

    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 10Kpermet 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 0puis on ajuster le potentiomtre pour obtenir 0 degr

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

    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 .

  • 8/11/2019 Arduino Capteur de Temperature

    18/30

    /*

    * 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 l

    IO 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);

  • 8/11/2019 Arduino Capteur de Temperature

    19/30

    /*

    * XTemp a tempeter sensor project By yAcien & Sliman & Omar

    * ENSAK 2012

    */

    #include

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

    //inistialinsinglcd.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 C

    tempC = tempK - 273.15;

    //K 2 F

    tempF = ((tempK ) * 9 / 5) - 459.67;

    Serial.println(raw);

    //Print to serial port

    Serial.print("Celsius: ");Serial.println(tempC);

    Serial.print("kelvein : ");

    Serial.println(tempK);

  • 8/11/2019 Arduino Capteur de Temperature

    20/30

  • 8/11/2019 Arduino Capteur de Temperature

    21/30

    Programme principale :

  • 8/11/2019 Arduino Capteur de Temperature

    22/30

  • 8/11/2019 Arduino Capteur de Temperature

    23/30

  • 8/11/2019 Arduino Capteur de Temperature

    24/30

  • 8/11/2019 Arduino Capteur de Temperature

    25/30

    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 grandintervalle 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 qualArduino pour effectuer des

    calculs.

    Ce travail nous a permet aussi dapprendre le LabView ds les instrument

    virtuel et aussi lutilisation de communication srie .

  • 8/11/2019 Arduino Capteur de Temperature

    26/30

    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/

    http://fr.wikipedia.org/wiki/Temp%C3%A9raturehttp://premiumorange.com/daniel.robert9/http://premiumorange.com/daniel.robert9/http://fr.wikipedia.org/wiki/Temp%C3%A9rature
  • 8/11/2019 Arduino Capteur de Temperature

    27/30

  • 8/11/2019 Arduino Capteur de Temperature

    28/30

  • 8/11/2019 Arduino Capteur de Temperature

    29/30

  • 8/11/2019 Arduino Capteur de Temperature

    30/30