Projet d`Electronique Thermomètre Digital

publicité
Projet Ing 1 TD 5
Semestre 1
2012-2013
Projet d’Electronique
Thermomètre Digital
Rodrigues Bastos Kévin
Tebib Heila
Tabiche Sohib
Xaysakda Mélody
Projet d’Electronique Thermomètre Digital
2012 - 2013
2
Projet d’Electronique Thermomètre Digital
2012 - 2013
Introduction
P4
I Etude du schéma fonctionnel
P5 – P8
II Simulation Sous Isis (Proteus)
P9 – P10
III Thermomètre à affichage alphanumérique
P11 –P14
- Etude de la partie matérielle
- Simulation sous Isis
- Code C associé
P11 -P12
P13
P14
Conclusion
3
Projet d’Electronique Thermomètre Digital
2012 - 2013
Introduction
Le but de ce projet de physique appliquée est de réaliser un thermomètre digital à l’aide des notions
vues en cours et des logiciels mis à notre disposition tels que ISIS/ PROTEUS.
Ce projet se décompose en deux parties. Dans un premier temps, nous étudierons le schéma
fonctionnel puis nous mettrons en place une simulation sous ISIS enfin nous réaliserons l’étude sur
plaque d’essais. Dans un second temps, nous réaliserons un thermomètre à affichage numérique.
Pour mener à bien notre projet, nous avons décidé de nous répartir équitablement les travaux avant
de réunir nos réalisations pour finaliser un compte rendu commun. En effet, Tabiche Sohib et
Xaysakda Mélody se sont occupés de la simulation sous ISIS et de la rédaction du rapport et Tebib
Heila et Rodrigues Bastos Kevin se sont penchés sur le cas du montage et de la simulation sous
PROTEUS.
4
Projet d’Electronique Thermomètre Digital
2012 - 2013
I – Etude du schéma fonctionnel
Un thermomètre est un appareil qui mesure et affiche la valeur de la température en captant la
chaleur extérieure. Nous avons tous d’abord étudié le schéma fonctionnel du thermomètre.
Pour la réalisation structurelle, nous distinguons quatre composants : un capteur de température: le
LM35, un circuit intégré : le LM3914 et les dix LEDs.
Avec le schéma fonctionnel de la simulation nous avons identifié les différentes fonctions :
Nous avons donc :
● La fonction Fs1 est assurée via la thermistance LM35 (résistance qui varie en fonction de la
température).
● La fonction Fs2 transforme une tension en une grandeur analogique et simplifie l’interphase du
capteur grâce au conditionneur.
● La fonction Fs3 de conversion est assurée via le convertisseur analogique/numérique LM3914
● La fonction d’affichage (Fs4) est assurée par les LEDs.
Dans le schéma tel qu’il est donné du thermomètre digital, le capteur LM35 délivre en sortie une
donnée analogique (tension). Pour pouvoir l’exploiter et l’afficher sur plusieurs LEDs, nous avons
besoin de la convertir, tel est le rôle du LM3914 (Convertisseur Analogique/ Numérique). C’est
pourquoi le LM3914 joue un rôle important.
De plus, grâce à la documentation fournie nous avons pu caractériser les entrées et sorties des
différents composants. Le schéma ci-contre illustre ces entrées et sorties.
5
Projet d’Electronique Thermomètre Digital
Grandeur Physique
Température (°C)
2012 - 2013
Grandeur Electrique Analogique
Tension (V)
Grandeur Electrique Analogique
Tension (V)
Fs 1
Fs 2
Fs 3
LM 35
Conditionneur
CAN LM3914
Grandeur Electrique
Numérique Tension (V)
Fs 4
Afficheur
(Led/LCD)
Signal Lumineux
Dans ce projet de physique appliquée, la grandeur physique que nous manipulons est une grandeur
thermique : la température exprimée en °C. Le support nous permettant de la véhiculer (la
température) est la tension analogique qui a pour unité le Volt.
D’autre part, à l’aide du logiciel de simulation ISIS, nous avons fait varier la température afin de
savoir à quelle température toutes les LEDs étaient éteintes et à quelle température celles-ci étaient
toutes allumées.
Suite à notre simulation nous avons trouvé que pour 0°C, toutes les LEDs étaient éteintes et que pour
40°C, elles étaient toutes allumées. De plus, nous avons remarqué que tout les 4°C, une LED s’allume.
Le pas de température observé est donc de 4.
Toujours avec ce même logiciel de simulation, nous avons voulu déterminer les limites de tension des
différentes LEDs pour cela nous avons ajouté un voltmètre en dérivation aux bornes d’une Led et
nous avons observé que lorsque la LED était allumée, la tension à ces bornes est de 2,23V et que
lorsqu’elle est éteinte celle-ci est de 0.01V. Les limites de tension des différentes LEDs sont 0V ou
2.23V.
Par la suite, nous avons voulu mesurer les tensions de sorties de LM35, nous avons donc ajouté un
voltmètre aux bornes de ce dernier.
Nous avons ainsi trouvé que pour 4°C, on a une tension de sortie de 0.13V et pour 40°c nous avons
une tension de sortie de 1.30V.
Voici les illustrations de notre simulation sous ISIS :
6
2012 - 2013
Projet d’Electronique Thermomètre Digital
Par ailleurs, nous avons fait varier la température de 4°C à 40°C, en relevant la tension de sortie du
LM35 dès qu’une LED s’allumait et nous avons obtenu les résultats suivants :
Température (°C)
Tension (V)
0
0
4
0.13
8
0.26
12
0.39
16
0.52
20
0.64
24
0.77
28
0.90
32
1.03
36
1.16
40
1.30
1,4
1,2
1
0,8
La tension en fonction de la
température
0,6
0,4
0,2
0
0
4
8
12 16 20 24 28 32 36 40
L’obtention de ces résultats nous a permis de tracer une droite représentant la tension en fonction
de la température. D’après le graphique, nous remarquons un rapport de proportionnalité, c’est une
droite du type ax +b (fonction affine). La loi de variation de l’information en fonction de la grandeur
physique est donc linéaire.
7
Projet d’Electronique Thermomètre Digital
2012 - 2013
D’autre part, avec le LM35, nous avons cherché la valeur minimale et maximale et nous avons trouvé
respectivement -55°C et 150°C.
La datasheet vient confirmer nos résultats puisque nous retrouvons à la page 3 que la plage de
capture est de -60°c à +150°c.
8
Projet d’Electronique Thermomètre Digital
2012 - 2013
II – Première partie
2 – Simulation sous Proteus
Dans cette partie nous avons utilisé le logiciel de simulation Proteus.
Après avoir lancé la simulation, nous remarquons que les LEDs (D1 à D10), s’allument ou s’éteignent
en fonction de la température.
Cependant nous avons eu des contraintes à prendre en compte pour le choix des résistances. En
effet, la valeur des résistances ne doit pas être trop faible pour avoir un courant correct aux bornes
du LM3945 et des LEDs et la puissance des résistances ne doit être trop élevée.
Nous avons ensuite placé un voltmètre virtuel afin de mesurer la valeur de la tension à la sortie du
capteur à 14°c. Ainsi pour 14°c, nous avons obtenu 0.45V.
Puis nous avons placé un ampèremètre virtuel afin d’obtenir la valeur de l’intensité qui circule dans
les diodes pour une température de 14°c. Pour 14°c, nous observons 3 LEDs allumées et 7 éteintes.
Les Leds allumées ont un courant qui les traverse de 9.58 mA, soit environ 10 mA tandis que les LEDs
éteintes ont une intensité de 0mA.
9
Projet d’Electronique Thermomètre Digital
2012 - 2013
De plus, nous avons étudié le pas de variation de la température comme précédemment. A 4°C, nous
avons 1 LED allumée, à 8°C nous en avons 2 et à 40 °C nous en avons 10.
Nous remarquons que tout les 4°c nous avons une LED qui s’allume en plus. Le pas de température
est donc de 4°c pour 1 LED.
Ce pas de variation de la température peut être changé. En effet, pour le modifier il suffirait de
changer les valeurs des résistances du conditionneur. Par exemple en fixant R4= 5.5 kOhm on obtient
un pas de température de 2.
D’autre part la présence de la résistance R1 est très importante, en effet celle-ci sert à fixer le
courant aux bornes des LEDs. L’intensité des LEDs dépendent de la résistance R1. Cela provient de la
loi d’Ohm U=RI.
1
0
Projet d’Electronique Thermomètre Digital
2012 - 2013
III – Thermomètre à affichage numérique
Annualise du Matériel
Nous nous proposons maintenant de réaliser un thermomètre à affichage numérique en utilisant les
composants suivants :
- LM35
- Arduino UNO (équipé d’un µContrôleur AMEGA328P)
- Un écran LCD 16*2
L’Arduino est composé de plusieurs structures :
1- Le port Usb : ce port sert à relier la plateforme Arduino avec un ordinateur (PC, Mac, Linux),
ainsi l’utilisateur peut coder un programme et le compiler dans le microcontrôleur.
2- L’alimentation : Arduino UNO a besoin d’être alimenté en tension continue (0v et 15v max).
3- La Led L est une Led reliée à la plateforme Arduino et au microcontrôleur.
Les Leds, RX, TX sont les témoins de la transmission entre le PC et le microcontrôleur (liaison
RS232).
4- Le microcontrôleur ATMEGA328P est l’élément principal de la plaque d’Arduino, c’est lui qui
effectue tous les traitements ainsi que la gestion des entrées et sorties.
1
1
2012 - 2013
Projet d’Electronique Thermomètre Digital
4a- L’ensemble des broches numéroté 4a sont reliées au microcontrôleur. Elles représentent les
sorties de celui-ci.
4b- L’ensemble des broches numéroté 4b sont reliées au microcontrôleur et représentent les
entrées de celui-ci.
Nous allons maintenant repérer les différentes entrées et sorties de la plaque Arduino.
Sortie Numérique/Analogique µContrôleur
Led d’état
Broche USB
Témoin de tension (LED)
Bouton Poussoir
(Hard Reset)
Alimentation en tension
Entrées Numériques et
Analogiques du µContrôleur
L’Arduino UNO dispose de plusieurs entrées et sorties. En effet l’Arduino UNO dispose d’entrées
physiques (Bouton Poussoir) ainsi que d’entrées électriques. En ce qui concerne les sorties, celles-ci
sont de forme Lumineuse (témoins lumineux Led) ou électrique (Sortie du microcontrôleur).
Entrées
Sorties
Broche Usb
Alimentation
Bouton Poussoir
Entrée Analogique et numérique
Led d’état
Témoin de tension (Led)
Sortie du µcontrôleur
1
2
2012 - 2013
Projet d’Electronique Thermomètre Digital
Etude du schéma fonctionnel
Afin d’afficher la température sur un afficheur LCD, nous voulons intégrer la plaque Arduino dans
notre montage précédent. Nous allons donc refaire un schéma structurel afin de faciliter la
compréhension du montage final.
Le capteur LM35, sa fonction est toujours la même c'est-à-dire qu’il capte la température et la
converti en tension.
Dans le nouveau montage, le Convertisseur Analogique Numérique (CAN) et le conditionneur ont été
remplacés par le microcontrôleur (AMEGA328P). Le schéma structurel est ainsi plus simple.
L’afficheur LCD (Liquid Crystal Display) a le même rôle que les Leds. C’est le support du signal
Lumineux.
Température
Signal Analogique image
de la température
Signal Numérique
Sur 8 broches
LM35
Arduino
Afficheur Lcd
FS1
FS2
FS3
Signal Lumineux Alphanumérique
Voici donc le montage sous ISIS en ayant identifié les différentes fonctions.
FS1 comme précédemment est assuré par le LM35 et le traitement de l’information est ici assuré par
Arduino qui délivre un signal qui se réinjecte dans l’afficheur LCD (16x2).
1
3
Projet d’Electronique Thermomètre Digital
2012 - 2013
Code C associé :
#include <LiquidCrystal.h>
#define Entree A0
//Initialisation des bibliothèques
float val;
// On crée une variable float qui va obtenir la valeur
de l'entrée analogique
// On crée 2 variables de type entier .
// Cette fonction, permet d'indiqué les numéros de broches
dans l'ordre : rs, enable, d4, d5, d6, d7
// Fonction Obligatoire
int temp,tempfar;
LiquidCrystal lcd( 0, 1, 2, 3, 4, 5);
void setup()
{
lcd.begin(16, 2);
analogReference(EXTERNAL);
pinMode(Entree, INPUT);
lcd.setCursor(0, 0);
lcd.print("Sohib, Kevin");
lcd.setCursor(0, 1);
lcd.print("Melody, Heila");
delay(100);
lcd.clear();
}
void loop()
{
val=analogRead(Entree);
val=((val*5)/1024);
// On défini la taille de l'écran ici: 16 colonnes * 2 lignes
// On place le curseur d'écriture à la position: 0,0
// On affiche de la position précédente Sohib, Kevin"
// On place le curseur en 0,1 c'est à dire, on va à la ligne
// On affiche "Melody, Heila"
// On fait une pause de 100 ms
// On efface l'écran
// Boucle de traitement (infinie)
// On dit que la valeur de la variable val est égale à
la valeur de l'entrée analogique
// Le µcontrôleur dispose d'un CAN 10bit, et d'une tension de
référence 5v donc on pose: Vref/2^10 c'est a dire, un pas de 5/1024
val = (val* 100);
// Val est ici exprimé en millivolts, nous multiplions val
par 100 pour avoir le résultat en 100 de mVolt
temp=val;
tempfar = (((9*temp)/5)+32);
// On affecte à la variable temp, la valeur reçu sur l'entrée analogique
lcd.setCursor(0, 0);
lcd.print("Temp=");
lcd.setCursor(0, 1);
lcd.print("Temp=");
// On place le curseur à la position 0,0
// On affiche temp
// /!\ Conversion dégrée Celsius, fahrenheit
if (temp <10)
// Si temp <10
{
lcd.setCursor(6, 0);
// On décale le curseur d'un rang vers la gauche, car 9 != 90
lcd.print("0");
// On affiche un zéro
lcd.setCursor(7, 0);
// On décale vers la droite d'un rang
lcd.print(temp);
// On affiche la valeur de temp
lcd.setCursor(9, 0);
// On décale d'un rang vers la droite
lcd.print((char)223);
// On affiche le symbole "°"
lcd.print("C");
// On affiche la lettre C (Celsius)
lcd.setCursor(6, 1);lcd.print(tempfar);lcd.setCursor(9, 1);lcd.print((char)223);lcd.print("F");
// Fonction d’affiche (nous avons
compacté pour gagner de la place
}
if (temp>=10)
// Si la température est > 10°
{
lcd.setCursor(6, 0);lcd.print(temp);lcd.setCursor(9, 0);lcd.print((char)223);lcd.print("C");
lcd.setCursor(6, 1);lcd.print(tempfar);lcd.setCursor(9, 1);lcd.print((char)223);lcd.print("F");
}
}
1
4
Projet d’Electronique Thermomètre Digital
2012 - 2013
Conclusion
Après l’étude du thermomètre sous ISIS/PROTEUS et du thermomètre à affichage nous pouvons dire
que le signal final est différent : en effet, dans le 1er montage la température est indiquée en fonction
du nombre de Leds allumées, c’est un signal lumineux alors que dans le 2ème montage avec Arduino
c’est l’écran LCD qui nous affiche un signal lumineux alphanumérique.
De plus, le 1er montage a besoin de plus de composants que le 2ème montage. En effet dans le 2ème
montage nous avons le microcontrôleur qui remplace à lui seul le convertisseur analogique
numérique et le conditionneur.
Le 2ème montage avec Arduino est plus coûteux que le 1er montage mais celui-ci est plus précis et
fonctionnel.
D’après nos expériences, nous pouvons conclure que la température est une grandeur mesurable.
1
5
Téléchargement