Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
TP01 :
mesure de température
avec arduino
Professeur: Étudiant :
Matériel nécessaire
Pour réaliser ce montage, il va nous falloir :
Une carte Arduino UNO (et son câble USB),
Un capteur LM35 (attention, il existe plusieurs versions, voir l'encadré ci-dessous),
Un condensateur de 100nF (optionnel, mais recommandé),
Une plaque d'essai et des fils pour câbler notre montage.
différentes versions de LM35 :
Pour faire simple, si on s'intéresse uniquement aux LM35 "à pattes" (boitier TO-92 pour les
intimes), il existe trois versions :
Le LM35DZ, capable de mesurer des températures de 0 à 100°C avec une précision de
1.5°C aux extrêmes.
Le LM35CZ, capable de mesurer des températures de -40 à 110°C avec une précision
de 1.5°C aux extrêmes.
Le LM35CAZ, capable de mesurer des températures de -40 à 110°C avec une
précision de 1°C aux extrêmes.
Pour commencer notre montage, nous allons câbler la broche VCC du capteur à l'alimentation
5V de la carte Arduino au moyen d'un fil. On fait ensuite de même avec la broche GND du
capteur qui vient se câbler sur la broche GND de la carte Arduino.
Pour faire les choses bien (parce que oui, on aime faire les choses bien), on va venir câbler un
condensateur de 100nF (un condensateur de découplage en termes techniques) entre les
broches VCC et GND du capteur. Il faut que le condensateur soit câblé le plus près possible
du capteur pour être efficace.
Le montage fini
On achève ensuite le circuit en reliant la sortie du capteur à la broche A0 de la carte Arduino
avec un fil.
Le code de démonstration
Maintenant que nous avons notre montage, passons au code !
Le but de notre code va être de :
1. Lire la tension sur la broche A0
2. Convertir la valeur mesurée en une température (pour l'affichage)
3. Envoyer la valeur au PC (pour l'affichage)
4. Recommencer au point 1.
Pour réaliser ce morceau code, nous allons utiliser la fonction analogRead() vue dans un
précédent tutoriel.
1 void setup() {
2 Serial.begin(9600);
3}
void loop() {
1
int valeur_brute = analogRead(A0);
2
3
float temperature_celcius = valeur_brute * (5.0 / 1023.0 *
4
100.0);
5
6
Serial.println(temperature_celcius);
7
delay(250);
8
}
/*
1
* Code d'exemple pour le capteur LM35 (2°C ~ +110°C).
2
*/
3
4
// Fonction setup(), appelée au démarrage de la carte Arduino
5
void setup() {
6
7
// Initialise la communication avec le PC
8
Serial.begin(9600);
9
}
10
11
// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est
12
alimentée
13
void loop() {
14
15
// Mesure la tension sur la broche A0
16
int valeur_brute = analogRead(A0);
17
18
// Transforme la mesure (nombre entier) en température via un produit en croix
19
float temperature_celcius = valeur_brute * (5.0 / 1023.0 * 100.0);
20
21
// Envoi la mesure au PC pour affichage et attends 250ms
22
Serial.println(temperature_celcius);
23
delay(250);
24
}
1 /*
2 * Code d'exemple pour le capteur LM35 (2°C ~ +110°C) avec une meilleure précision.
3 */
4
5 // Fonction setup(), appelée au démarrage de la carte Arduino
6 void setup() {
7
8 // Initialise la communication avec le PC
9 Serial.begin(9600);
10
11 // Améliore la précision de la mesure en réduisant la plage de mesure
12 analogReference(INTERNAL); // Pour Arduino UNO
13 // analogReference(INTERNAL1V1); // Pour Arduino Mega2560
14 }
15
16 // Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est
17 alimentée
void loop() {
18
19
// Mesure la tension sur la broche A0
20
int valeur_brute = analogRead(A0);
21
22
// Transforme la mesure (nombre entier) en température via un produit en croix
23
float temperature_celcius = valeur_brute * (1.1 / 1023.0 * 100.0);
24
25
// Envoi la mesure au PC pour affichage et attends 250ms
26
Serial.println(temperature_celcius);
27
delay(250);
28
}
Le montage fini
On achève ensuite le circuit en reliant la sortie du capteur à la broche A0 de la carte Arduino
avec un fil et en câblant la résistance de 18K ohms entre la sortie du capteur et la
broche GND de la carte Arduino.
Comment ça marche ?
1 void setup() {
2 Serial.begin(9600);
3}
La partie setup() reste inchangée.
On notera seulement qu'il n'est pas possible d'utiliser l'astuce du analogReference() vu dans le
chapitre précédent avec ce montage, car nous allons mesurer des tensions entre 0 volt et ~3,5
volts (avec un signal centré autour de 2 volts).
void loop() {
1
int valeur_brute = analogRead(A0);
2
int valeur_offset = analogRead(A1);
3
4
float temperature_celcius = (valeur_brute - valeur_offset) * (5.0 / 1023.0 *
5
100.0);
6
7
Serial.println(temperature_celcius);
8
delay(250);
9
}
1 /*
2 * Code d'exemple pour le capteur LM35 avec support des températures négatives (-40°C
3 ~ +110°C).
4 */
5
6 // Fonction setup(), appelée au démarrage de la carte Arduino
7 void setup() {
8
9 // Initialise la communication avec le PC
10 Serial.begin(9600);
11 }
12
13 // Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est
alimentée
14
void loop() {
15
16
// Mesure la tension sur la broche A0 (sortie capteur) et A1 (référence du point zéro)
17
int valeur_brute = analogRead(A0);
18
int valeur_offset = analogRead(A1);
19
20
// Transforme la mesure (nombre entier) en température via un produit en croix
21
float temperature_celcius = (valeur_brute - valeur_offset) * (5.0 / 1023.0 * 100.0);
22
// Envoi la mesure au PC pour affichage et attends 250ms
23
Serial.println(temperature_celcius);
24
delay(250);
25
}
Conclusion
Ce tutoriel est désormais terminé.
Si ce tutoriel vous a plu, n'hésitez pas à le commenter sur le forum, à le diffuser sur les
réseaux sociaux et à soutenir le site si cela vous fait plaisir.