Académique Documents
Professionnel Documents
Culture Documents
Rapport de projet
THERMOMETRE A BASE D’ARDUINO
Réalisé par :
SOUAK Elmahdi
ELOUAFI Hamza
CHAHID Amal
ELAZAOUY Achraf
Encadré par :
Mr.Saufi Abdlmajid
Année : 2017-2018
Page 2
Remerciements
Tout d’abord, nous remercions Allah, le tout grand puissant de nous avoir donné la force, le
courage, la patience, et la volonté, de mener à bien ce modeste travail.
Nous tenons à remercier toute l’équipe pédagogique de ISTA-IE et les intervenants
professionnels responsables de la formation de la filière Automatisation et Instrumentation
Industriel.
Nous profitions de l’occasion pour remercier notre professeur Monsieur SAUFI qui n’a pas
cessé de nous encourager pendant la durée du projet, ainsi pour sa générosité en matière de
formation et d’encadrement.
Nos remerciements vont aussi à toutes les personnes qui ont contribués de près ou de loi a
la réalisation de notre projet de fin d’étude.
Page 3
SOMMAIRE
Introduction ……………………………………………………………………………………………………………………………………………………5
Chapitre I : Les outils du projet .............................................................................................................................. 6
1-Capteur de température LM 35 ........................................................................................................................... 6
2-L’arduino ………………………………………………………………………………………………………………………………………………………7
3-Afficheur LCD 16x2………………………………………………………………………………………………………………………………………..9
4-Potentiométre ……………………………………………………………………………………………………………………………………………..11
5-Résistance électrique…………………………………………………………………………………………………………………………………….13
6-LED ....................................................................................................................................................................... 15
Chapitre II : La partie de programmation ........................................................................................................... 17
1-Le logiciel ………………………………………………………………………………………………………………………………………………………17
2-Programme principal .......................................................................................................................................... 19
Chapitre III : La partie de réalisation ………………………………………………………………………………………………………….20
1-Présentation du système………………………………………………………………………………………………………………………………20
2- Schéma du circuit ……………………………………………………………………………………………………………………………………….21
3- La simulation sur ISIS ………………………………………………………………………………………………………………………………….22
4-Cicuit imprimé ……………………………………………………………………………………………………………………………………………..23
5-La réalisation pratique ......................................................................................................................................... 24
Conclusion ……………………………………………………………………………………………………………………………………………………27
Page 4
Introduction
La température constitue une information importante dans plusieurs processus industriels et
de laboratoire. Elle intervient comme une grandeur principale dont la valeur doit être connue
avec précision ou comme paramètre influant sur la qualité d’autres mesures. Sa
valeur sera utilisée pour la correction ou la compensation.
Certains procèdes industriels ou biologiques favorisent des environnements de températures
spécifiques, ainsi la régulation de température s’impose. Cette régulation passe par la
mesure de température de manière continue. Les possibilités offertes par l’utilisation de
système à base de microprocesseur ont permis de traiter les signaux issus des capteurs
numériquement (linéarisation et conversion). Ceci a conduit à des appareils précis et bon
marché. Les systèmes à base de microcontrôleurs comme l’ARDUINO constituent la
solution la plus attractive.
Dans ce travail nous avons fait la conception d’un thermomètre à base de l’ARDUINO
UNO. Notre thermomètre utilise un capteur LM35 pour la mesure de température. Les
calculs et la conversion nécessaires et le traitement des informations sont confiés au
microcontrôleur (L’ARDUINO) et l’affichage de la température actuel, maximale et
minimal sur un Afficheur LCD 16x2 et aussi une LED qui s’allume si la température dépasse
certaine valeur.
Page 5
Chapitre I : Les outils du projet
1-Capteur de température LM35 :
Le capteur de température LM35 est un capteur analogique. Il est extrêmement populaire en
électronique, car précis, peu couteux, très simple d'utilisation et d'une fiabilité à toute
épreuve.
Le capteur de température LM35 est capable de mesurer des températures allant de -55°C à
+150°C dans sa version la plus précise et avec le montage adéquat, de quoi mesurer
n'importe quelle température.
La sortie analogique du capteur est proportionnelle à la température. Il suffit de mesurer la
tension en sortie du capteur pour en déduire la température. Chaque degré Celsius
correspond à une tension de +10mV.
Dans notre projet le capteur lm35 va mesurer la température est après l’envoyée (comme un
signal analogique) à l’entrée A0 D’ARDUINO. Donc il faut convertie la valeur analogique
de LM35 en 10bit numériques pour faire ça on doit utiliser une relation de variation de
température on fonction de la tension de sortie du capteur LM35.
Pour l’ARDUINO 0 →0V et 1→210=1023→5V si on utilise 5V comme une tension de
référence et Vout est la tension sortie de LM35 on obtient :
Température (°C) = (5.0*Vout*100.00) /1023
On multiplié Vout par 100 car chaque degré Celsius correspond à une tension de 10mv par
exemple si la température est 100°C on obtient à la sortie de LM 35 une tension = 1V, donc
LM 35 mesuré une température est après il devise ça valeur par 100 alors pour obtient la
valeur exacte de la température il faut multiplier la tension de sortie par 100.
Les caractéristiques :
Alimentation : 4 à 20 V
Plage de mesure : -55°C / +150°C
Précision : 0,5°C (à 25°C)
Boîtier : TO92
Page 6
2-L’ARDUINO :
Arduino est un circuit imprimé en matériel libre (dont les plans sont publiés en licence libre)
sur lequel se trouve un microcontrôleur qui peut être programmé pour analyser et produire
des signaux électriques, de manière à effectuer des tâches très diverses comme la domotique
(le contrôle des appareils domestiques - éclairage, chauffage…), le pilotage d'un robot, etc.
Il existe différents types d’Arduino et à chaque type correspond une forme et une taille
différente. Nous n’allons pas tous les citer mais nous avons par exemple :
- L’Arduino UNO (la version que nous utilisons actuellement pour notre projet)
-L’Arduino MEGA qui possède plus d’entrées et de sorties ainsi qu’une mémoire plus
conséquente.
-L’Arduino Nano qui comme son nom l’indique est beaucoup plus petite que ses
homologues.
La carte Arduino peut être alimentée de deux façons : soit par le port USB relié à
l’ordinateur, soit avec un transformateur secteur de tension adéquate via la prise jack (on
peut également utiliser des piles).
L’Arduino accepte des tensions continues de 6 à 20V mais il est conseillé de ne pas dépasser
les 12V. La marge de sécurité offre une protection contre les éventuels creux de tension
indésirables. La carte est dotée d’un régulateur de tension qui va ramener la tension
d’alimentation à 5V et la garder constante au cas où on alimente avec une tension supérieure.
De toute manière, en alimentant l’Arduino au port USB de l’ordinateur on est sûr d’avoir
une tension de 5V.
Le microcontrôleur est l’élément le plus important de la carte Arduino. Un microcontrôleur
est un circuit intégré (IC) qui rassemble les éléments essentiels d’un ordinateur : processeur
(CPU), mémoires, horloge interne et ports d’entrées et de sorties (I/O). Le rôle du CPU est
d’exécuter des programmes stockés en mémoire. Il y a 3 types de mémoire dans un Arduino
— La mémoire FLASH : Cette mémoire sert à stocker les programmes à exécuter par le
CPU. C’est une mémoire non volatile, ce qui signifie que les données sont conservées même
lorsqu’on coupe l’alimentation.
— La mémoire SRAM (Statice Random Access Memory) : Cette mémoire permet de
stocker des données temporaires tel que les variables de notre programme. Contrairement à
la mémoire FLASH, la SRAM est une mémoire volatile. Elle est très rapide et l’Arduino
UNO en possède seulement 2 Ko.
— La mémoire EEPROM (Electrically Erasable Programmable Read Only Memory ou
mémoire morte effaçable électriquement et programmable) : Elle permet le stockage
dedonnées persistantes (données de log ou états devant être conservés). C’est une mémoire
lente mais non volatile. L’Arduino UNO possède 1Ko de cette mémoire. C’est le “disque
dur” de notre carte.
Page 7
L’horloge interne (ou oscillateur) permet de cadencer (rythmer) les actions du CPU car ce
dernier ne travaille pas en continue, il exécute un certain nombre de calculs par seconde.
Les pins ou entrées/sorties de la carte Arduino sont principalement :
— Soit des connexions d’alimentation (5V/3.3V/Vin/Ground). C’est par là que sont
alimentés les circuits qu’on réalise.
— Soit des entrées/sorties digitales ou analogiques.
Page 9
N° Nom Rôle
1 VSS Masse
3 V0ou Cette tension permet, en la faisant varier entre 0 et +5V, le réglage du contraste de l'afficheur.
VEE
6 E Entrée de validation
7à D0 à Bits de données
14 D7
Page 10
4-Potentiomètre:
Un potentiomètre (appelé familièrement potard) est un type de résistance variable à trois
bornes, dont une est reliée à un curseur se déplaçant sur une piste résistante terminée par les
deux autres bornes. Ce système permet de recueillir, entre la borne reliée au curseur et une
des deux autres bornes, une tension qui dépend de la position du curseur et de la tension à
laquelle est soumise la résistance.
Figure 5 :Un potentiomètre rotatif standard Figure 6 : Symboles du potentiomètre (en haut, symbole
européen et international, en bas américain).
Page 11
Un potentiomètre numérique est un composant actif qui simule le comportement d'un
potentiomètre analogique, mais à la différence de ce dernier, on ne fait pas varier sa
résistance mécaniquement en le tournant. Il varie sa résistance en fonction d'une valeur
numérique (souvent un octet) qu'il reçoit. Il ne peut donc prendre qu'un nombre fini de
valeurs de résistances possibles. L'échelle de correspondance entre les n valeurs numériques
et les différentes valeurs de résistances sont propres à chaque modèle de potentiomètre.
Dans notre montage, Nous allons ajouter un potentiomètre relié à la broche V0 de l’Écran
LCD. On va connecter une extrémité du potentiomètre à 5V et l’autre extrémité à la masse
et finalement le curseur à V0 donc ce dernier va prendre des valeurs de tension entre 0V et
5V ce qui nous permettre de varier le contraste de l'écran et ainsi permettre d'afficher le
texte.
Page 12
5-Résistance électrique:
Une résistance est un composant électronique ou électrique dont la principale caractéristique
est d'opposer une plus ou moins grande résistance (mesurée en ohms) à la circulation du
courant électrique.
La résistance électrique traduit la propriété d'un composant à s'opposer au passage d'un
courant électrique (l'une des causes de perte en ligne d'électricité). Elle est souvent désignée
par la lettre R et son unité de mesure est l'ohm (symbole : Ω). Elle est liée aux notions de
résistivité et de conductivité électrique.
La résistance est responsable d'une dissipation d'énergie sous forme de chaleur. Cette
propriété porte le nom d'effet Joule. Cette production de chaleur est parfois un effet souhaité
(résistances de chauffage), parfois un effet néfaste (pertes Joule) mais souvent inévitable.
Un des problèmes majeurs pour les ingénieurs est que la conductivité, et son inverse, la
résistivité, dépendent fortement de la température. Lorsqu'un dipôle est traversé par un
courant électrique, sa résistance provoque un échauffement qui modifie sa température,
laquelle modifie sa résistance. La résistance d'un dipôle dépend donc fortement des
conditions d'utilisation.
La valeur des résistances à couche standard est habituellement indiquée sur le composant
sous forme d'anneaux de couleurs. Le code en est défini par la norme CEI 60757. Afin de
standardiser les valeurs possibles des résistances, il existe des séries de valeurs normales
pour résistances. Ces valeurs normalisées sont définies par la norme CEI 60063.
Page 13
Code des couleurs pour les résistances
* Le troisième anneau n'est utilisé que lorsque la tolérance de la résistance est inférieure ou
égale à 2 %.
Un moyen mnémotechnique pour se souvenir de l'ordre des couleurs dans le code couleur
des résistances est de connaitre la phrase suivante : "Ne Manger Rien Ou Jeûner Voilà Bien
Votre Grande Bêtise" ou encore "Ne Mangez Rien Ou Je Vous Brûle Votre Grande Barbe",
et une dernière phrase "Ne Mangez Rien Ou Je Vous Bats Violemment Gros Bêta" est
intéressante car elle permet de repérer la position du violet à travers le mot "Violemment".
Chaque initiale correspond à la première lettre de chaque couleur.
Dans notre projet la résistance va jouer le rôle de la protection, la LED est connecté à la
sortie digitale 8 de l’arduino et ce dernier va envoyer soit 0 (0V) soit 1(5V) selon la valeur
de température donc pour protéger la LED contre le niveau haut (5V) il faut ajouter une
résistance de protection.
Page 14
6-LED:
Une diode électroluminescente, aussi appelée LED pour "Light-Emitting Diode", est un
composant électronique qui a la particularité d'émettre une lumière lorsqu'il est parcouru par
un courant électrique. La seconde particularité étant que le courant ne traverse ce composant
que par un seul côté, lorsque le courant passe de l'autre côté, il est bloqué et la LED ne
s'allume pas.
Ce composant de la famille des semi-conducteurs est dit "passif". Son sens est déterminé
grâce aux 2 parties qui composent ce composant : l'Anode et la Cathode. Pour s'illuminer,
le courant dans parcourir la LED de l'anode vers la cathode.
Il y a plusieurs façons pour définir et reconnaitre le sens d'une LED :
Sur le composant, l'anode est le côté où la patte du composant est la plus longue. La cathode
est donc la patte la plus courte.
Vu du dessus, la LED n'est pas totalement circulaire, il y a toujours un côté plat. Ce côté
plat représente la cathode. Cette astuce est indispensable pour reconnaitre la cathode lorsque
les pattes sont coupées. Sur un schéma électrique, la cathode est représentée par le côté où
il y a le bord plat à droite du triangle.
Page 15
Les LED peuvent être d'une couleur bien définie par exemple être rouge, verte, bleu ou
blanche. Mais il y a des LED qui spéciales qui peuvent changer de couleur selon le courant
qui les traverses. Il existe également des LED infrarouges qui permettent d'émettre une
lumière qui ne sera pas vue par un humain. Ces LED infrarouges sont par exemple utilisées
dans les télécommandes.
Dans notre Montage la led va s'allumer et s'éteindre selon la valeur de température et on va
déterminer cette valeur dans le programme principal de notre projet.
Page 16
Chapitre II : La partie de programmation
1-Le logiciel :
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 transférer le firmware
et le programme au travers de la liaison série (RS-232, Bluetooth ou USB selon le module).
Page 17
La mémoire dont on dispose est en général limitée, il existe donc plusieurs types de variable
différentes. Chaque type occupe un certain nombre d’octets (plus ou moins grand selon le
type de la variable). Le but sera donc d’utiliser le type de variable adaptée, qui optimise la
place occupée en mémoire.
Le second bloc c.-à-d. le setup, qui est ce qu’on appelle une fonction. Une fonction est un
ensemble d’instructions réunies en une unité logique possédant un nom évocateur afin d’être
appelée comme une instruction ordinaire. Toutes les instructions qu’elle contient sont
exécutée en un seul bloc. Dans la fonction setup, on va programmer les différentes broches
du microcontrôleur. Si on branche par exemple un composant sur la broche 8 de la carte, il
faut dire si cette broche est utilisée en entrée (INPUT) ou en sortie(OUTPUT).
Dans le cas d’un capteur, la broche devra être déclarée en entrée car le capteur envoie des
informations à la carte tandis que dans le cas d’une led qui est un actionneur, on la déclarera
en sortie.
Le dernier bloc est également une fonction nommée loop qui est une boucle infinie. . . c’est
elle qui contiendra les tâches que doit effectuer notre programme c-à-d. la logique au moyen
de laquelle seront interrogés les capteurs (exemple : donne-moi la température toute les x
secondes) et commandé les actionneurs (exemple : allumer une led ou faire tourner un
moteur). Les instructions se trouvant dans cette boucle seront répétées jusqu’à la mise hors
tension de la carte Arduino.
Page 18
2-Le programme principal :
Nous avons utilisé le logiciel d’arduino pour programmé notre thermomètre, et chaque
ligne du programme contient un commentaire commencé par // pour expliquer les
contenues et les instructions du programme.
LiquidCrystal lcd(7,6,5,4,3,2); //Cette fonction, permet d'indiqué les numéros de broches dans
l'ordre : rs, enable, d4, d5, d6, d7.
float Temp; // Déclaration des variables utilisées et le numéro de broche de chaque variable.
int tempPin = 0; // Déclaration de broche analogique de LM35.
int redledPin = 8; // Déclaration de broche digital de la led.
float minTemp = 100;//Déclaration d'un variable avec un valeur initiale pour la température minimale
float maxTemp = 0; //Déclaration d'un variable avec un valeur initiale pour la température maximale.
byte smiley[8] = { // Déclaration d’un tableau de 8 octets pour afficher un smiley(visage souriant).
sur le LCD
B00000,
B01010,
B00000,
B00000,
B10001,
B01110,
B00000,
B00000};
void setup() {
pinMode(redledPin, OUTPUT); // Définir Pin 8 comme sortie.
lcd.createChar(0,smiley); // Créer le caractère smiley.
lcd.begin(16,2); // Initialise le LCD avec 16 colonnes et 2 lignes.
delay(1000); // Pause de 1 seconde pour laisser l'initialisation.
lcd.write(byte(0)); // Afficher le caractère smiley.
lcd.setCursor(4,0); // Placer le curseur à 5éme colonne et 1ere ligne.
lcd.print("Bienvenue"); // Afficher le message "Bienvenue".
lcd.setCursor(15,0); //Placer le curseur à 16éme colonne et 1ere ligne.
lcd.write(byte(0)); // Afficher le caractère smiley.
delay(4000); // Pause de 4 secondes.
lcd.clear(); // Effacer l'écran.
delay(100); }
void loop() {
Temp = analogRead(tempPin); // Lire l'entrée A0.
Temp = (5.0*Temp*100.00) /1023; //Convertir de voltage à température en °C.
lcd.setCursor(2,0); // Placer le curseur à 4émé colonne et 1ere ligne.
lcd.print("Temp=");// Afficher le message "Temp=".
lcd.setCursor(7,0); // Placer le curseur à 8éme colonne et 1ere ligne.
lcd.print(Temp,1); // Afficher la mesure de l'entrée A0.
lcd.setCursor(11,0); // Placer le curseur à 12éme colonne et 1ere ligne.
lcd.print((char)223);// Afficher le caractère °; pour l'écran lcd le caractère ° est codée par un
nombre hexadécimal 0xDF = 223 en décimal et (char) pour indiquer qu'il s'agit d'un caractère.
lcd.setCursor(12,0); // Placer le curseur à 13éme colonne et 1ere ligne.
lcd.print("C"); // Afficher le message "C"
if (Temp > maxTemp) maxTemp = Temp ; // Condition pour identifier la température maximale (maxTemp).
if (Temp < minTemp) minTemp = Temp ; // Condition pour identifier la température minimale (minTemp).
lcd.setCursor(0,1); // Placer le curseur à 1ere colonne et 2éme ligne.
lcd.print("Min="); // Afficher le massage "Min:".
lcd.setCursor(4,1); // Placer le curseur à 5éme colonne et 2éme ligne.
lcd.print(minTemp,1); // Afficher la température Minimale.
lcd.setCursor(8,1); // Placer le curseur à 9éme colonne et 2éme ligne.
lcd.print("Max="); // Afficher le message "Max:".
lcd.setCursor(12,1); // Placer le curseur à 13éme colonne et 2éme ligne.
lcd.print(maxTemp,1); // Afficher la température Maximale.
if(Temp>25) // Si la température>25°c
{ digitalWrite(redledPin, HIGH); //Envoyer un niveau haut 1 (5V) sur la broche 8 pour allumer la LED
delay(1000); // pause de 1 seconde }
if(Temp<25) // Si la température<25°c. {
digitalWrite(redledPin, LOW); // Envoyer un niveau bas 0 (0V) sur la broche 8 pour éteindre la LED
}
delay(1000);}
Page 19
Chapitre III : La partie de réalisation
1- Présentation du système :
Un thermomètre électronique est composé d’un capteur de température et des composants
électroniques qui ont pour rôle de traiter l’information et la rende exploitable par l’usage.
Ce thermomètre devra faire la mesure de la température et à la fin de la mesure, on obtient
une tension de sortie en relation linéaire avec la température exprimée en degrés Celsius,
après l’arduino va effectuer la conversion analogique numérique de cette tension selon la
formule suivante :
Température (°C) = (5.0*Vout*100.00) /1023
Et après afficher la température en Celsius avec la valeur minimale et maximale sur un
afficheur LCD et finalement comparer cette température avec 25°C, si la valeur dépassé 25
L’arduino va envoyer une tension de 5V sur la broche 8 (digital) pour allumer une LED et
si la valeur est inférieure à 25°C L’arduino va éteindre la LED en envoyant 0V sur la broche
8.
Si la Allumer la
Température LED
> 25°C
Afficheur
Température LM35 Arduino
16x2
Si la Eteindre la
Température LED
< 25°C
Page 20
2- Schéma du circuit :
Voilà le circuit principal de notre thermomètre :
Page 21
3-La simulation sur ISIS :
Avant de commencer la réalisation pratique de notre projet nous avons faire une
simulation sur Proteus 8 (ISIS) pour assurer le bon fonctionnement de notre projet et pour
vérifier que le programme est correct.
Page 22
4-Circuit Imprimé:
Pour simplifier le circuit imprimé de notre thermomètre nous avons décidé de laisser
l’arduino et LCD 16x2 et la liaison entre les deux à l’extérieur de la carte électronique. Et
utilisé des connecteurs pour faciliter le câblage.
Voilà la carte de notre circuit :
Page 23
5-Réalisation pratique:
Nous avons installé la carte et tous les composants de thermomètre dans une boîte
rectangulaire rigide avec un couvercle pour faciliter la modification sur le circuit.
L’intérieur de la boîte :
Page 24
Alimentation de L’arduino
Page 25
La forme finale de notre thermomètre :
Page 26
Conclusion
La réalisation de ce projet simple nous a énormément appris, soit au niveau de
l’électronique, ou bien au niveau de la programmation de l’arduino. Nous avons aussi acquis
de nouvelles connaissances au niveau de la gestion du temps et des équipes.
Ce travail reste, comme toute œuvre humaine, incomplet et perfectible, nous espérons qu’il
sera une initiative visant à développer notre connaissance dans les prochains jours.
Page 27
REFERENCES BIBLIOGRAPHIQUES
[1]. Datasheet LM35
[2]. https://www.gotronic.fr/art-lm35dz-10295.htm
[3]. https://www.carnetdumaker.net/articles/mesurer-une-temperature-avec-un-capteur-lm35-et-une-carte-
arduino-genuino/
[4]. https://www.technologuepro.com/microcontroleur-2/arduino/Arduino%20uno.html
[5]. https://fr.wikipedia.org/wiki/HD44780
[6]. https://fr.wikipedia.org/wiki/Potentiom%C3%A8tre
[7]. http://www.ifpenergiesnouvelles.fr/
[8]. http://eskimon.fr/tuto-arduino-701-les-%C3%A9crans-lcd
Page 28