SIK Experiment Guide for the Arduino 101/Genuino 101 Board (French)
This Tutorial is Retired!
This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.
Expérience 9 : Lire un capteur de température
Introduction
Comme son nom l'indique, un capteur de température permet de mesurer la température ambiante. Dans cette expérience, vous allez lire la valeur brute (comprise entre 0 et 1023) du capteur de température, calculer la température réelle, puis l'imprimer via le moniteur série. Vous ne savez pas ce qu'est le moniteur série ? Vous le découvrirez en réalisant cette expérience !
Composants nécessaires
Vous aurez besoin des composants suivants :
- 1 plaque Breadboard
- 1 carte Arduino 101 ou Genuino 101
- 3 cavaliers
- 1 capteur de température TMP36
Vous n'avez pas le SIK ?
Pour réaliser cette expérience sans le SIK, nous vous suggérons d'utiliser les composants suivants :
Vous aurez également besoin d'une carte Arduino 101 ou Genuino 101.
Présentation du capteur de température TMP36
Le TMP36 est un capteur de température basse tension de précision. Il fournit une valeur de tension linéairement proportionnelle à la température en degrés Celsius. Il ne requiert aucun étalonnage externe pour fournir la précision type de ±1°C à +25°C et de ±2°C sur la plage de températures comprise entre −40°C et +125°C. La tension de sortie peut être facilement convertie en température à l'aide du facteur d'échelle de 10 mV/°C.
Si la face plate portant une inscription se trouve face à vous, cela signifie que la broche centrale est votre broche de signal, que la broche de gauche est celle de la tension d'alimentation (3,3 V dans ce tutoriel) et celle de droite se connecte à terre.
Astuce de pro : Le TMP36 ressemble à un transistor. Déposez un point de vernis à ongle sur sa partie supérieure pour le trouver facilement.
Branchement du matériel
Vous êtes prêt à tout raccorder ? Consultez le schéma de câblage ci-dessous pour savoir comment faire.
Composants polarisés | Faites particulièrement attention aux marquages indiquant comment placer les composants sur la plaque breadboard, car les composants polarisés ne peuvent être connectés à un circuit que dans une direction. |
Attention : Le capteur de température ne peut être connecté à un circuit que dans une direction. Le schéma ci-dessous montre les broches du TMP36.
Schéma de câblage de l'expérience
Ouverture du sketch
Ouvrez l'EDI Arduino sur votre ordinateur. Le codage en langage Arduino contrôlera votre circuit. Ouvrez le code du Circuit 9 en accédant au « Code du guide SIK 100 » que vous avez précédemment téléchargé et placé dans votre dossier « Examples ».
Pour ouvrir le code, cliquez sur : File > Examples > 101 SIK Guide Code > Circuit_09
Vous pouvez également copier et coller le code suivant dans l'EDI Arduino. Cliquez sur Télécharger et observez ce qu'il se passe.
language:cpp
/*
SparkFun Inventor's Kit
Example sketch 07
TEMPERATURE SENSOR
Use the "serial monitor" window to read a temperature sensor.
This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn more about Arduino.
*/
//analog input pin constant
const int tempPin = 0;
//raw reading variable
int tempVal;
//voltage variable
float volts;
//final temperature variables
float tempC;
float tempF;
void setup()
{
// start the serial port at 9600 baud
Serial.begin(9600);
}
void loop()
{
//read the temp sensor and store it in tempVal
tempVal = analogRead(tempPin);
//print out the 10 value from analogRead
Serial.print("TempVal = ");
Serial.print(tempVal);
//print a spacer
Serial.print(" **** ");
//converting that reading to voltage by multiplying the reading by 3.3V (voltage of //the 101 board)
volts = tempVal * 3.3;
volts /= 1023.0;
//print out the raw voltage over the serial port
Serial.print("volts: ");
Serial.print(volts, 3);
//print out divider
Serial.print(" **** ");
//calculate temperature celsius from voltage
//equation found on the sensor spec.
tempC = (volts - 0.5) * 100 ;
// print the celcius temperature over the serial port
Serial.print(" degrees C: ");
Serial.print(tempC);
//print spacer
Serial.print(" **** ");
// Convert from celcius to fahrenheit
tempF = (tempC * 9.0 / 5.0) + 32.0;
//print the fahrenheit temperature over the serial port
Serial.print(" degrees F: ");
Serial.println(tempF);
//wait a bit before taking another reading
delay(1000);
}
À propos du code
Serial.begin(9600);
Avant d'utiliser le moniteur série, vous devez appeler Serial.begin()
pour l'initialiser. 9600 indique le « débit en bauds », c'est-à-dire la vitesse de communication. Quand deux appareils communiquent, les deux doivent être réglés sur la même vitesse.
Serial.print(tempC);
La commande Serial.print() est très astucieuse. Elle peut quasiment tout imprimer, y compris les variables de tous types, le texte cité ("strings"), etc. Consultez http://arduino.cc/en/serial/print pour en savoir plus.
Serial.println(tempF);
Serial.print()
imprime tout sur la même ligne.
Serial.println()
passe à la ligne suivante. En utilisant ces deux commandes ensemble, vous pouvez créer des impressions de texte et de données faciles à lire.
Ce que vous devez voir
Vous devez pouvoir lire la température que détecte votre capteur de température sur le moniteur série de l'EDI Arduino. Dans le cas contraire, vérifiez que vous avez monté correctement le circuit, vérifié et téléchargé le code sur votre carte. SI le problème persiste, consultez la section Dépannage.
Exemple de ce que vous devez voir sur le moniteur série de l'EDI Arduino :
TempVal = 223 **** volts: 0.719 **** degrés C: 21.94 **** degrés F: 71.48
TempVal = 224 **** volts: 0.723 **** degrés C: 22.26 **** degrés F: 72.06
TempVal = 224 **** volts: 0.723 **** degrés C: 22.26 **** degrés F: 72.06
TempVal = 224 **** volts: 0.723 **** degrés C: 22.26 **** degrés F: 72.06
TempVal = 224 **** volts: 0.723 **** degrés C: 22.26 **** degrés F: 72.06
TempVal = 224 **** volts: 0.723 **** degrés C: 22.26 **** degrés F: 72.06
TempVal = 223 **** volts: 0.719 **** degrés C: 21.94 **** degrés F: 71.48
TempVal = 223 **** volts: 0.719 **** degrés C: 21.94 **** degrés F: 71.48
Dépannage
Rien ne semble se produire
Dans cette expérience, aucune indication externe ne montre que cela fonctionne. Pour voir les résultats, vous devez ouvrir le moniteur série de l'EDI Arduino (instructions sur la page précédente).
Un charabia s'affiche
Ce problème est dû au fait que le moniteur série reçoit les données à une vitesse différente de celle attendue. Pour le régler, cliquez sur la liste déroulante « *** baud » et sélectionnez « 9600 baud ».
La valeur de température ne change pas
Essayez de pincer le capteur avec les doigts pour le chauffer ou de placer un sac de glace contre le capteur pour le refroidir.
Le capteur de température est très chaud
Vous l'avez câblé à l'envers ! Débranchez immédiatement votre carte Arduino, laissez le capteur refroidir et vérifiez le câblage. Si vous vous en êtes rendu compte à temps, le capteur ne sera peut-être pas endommagé et fonctionnera encore.