Table des matières

Sommaire Arduino

Bibliothèques - Sparkfun TMP102, TMP117

Mise à jour le [18/8/2023]

Ressources

Description

Le TMP102 de Texas Instruments est un capteur de température numérique.Il transmet la température mesurée par un bus I2C. Sa résolution est égale à 0,0625°C et sa précision 0,5°C. Le module intégre des résistances de tirage de 4,7 kΩ et fonctionne entre 1,4 V et 3,6 V.

Connexions

Exemple avec une ancien modèle de carte

La classe TMP102 (TMP117)

Constructeur

SyntaxeDescription
TMP102(byte adresse); Initialise un objet TMP102 avec l'adresse passée en paramètre
// Exemple
TMP102 sensorTemp(0x48);

Méthodes

Syntaxe Description
Initialisation
void begin(void); Connecte le capteur au bus I2C.
// Exemple
sensorTemp.begin();
Lecture de la température
float readTempC(void); Retourne la température en °C.
// Exemple
float temperature = sensorTemp.readTempC();
float readTempF(void); Retourne la température en °F.
// Exemple
float temperature = sensorTemp.readTempF();
float readLowTempC(void); Retourne le contenu du registre T_LOW en °C.
// Exemple
float temperature = sensorTemp.readLowTempC();
float readHighTempC(void); Retourne le contenu du registre T_HIGH en °C.
// Exemple
floattemperature = sensorTemp.readHighTempC();
float readLowTempF(void); Retourne le contenu du registre T_LOW en °F.
// Exemple
float temperature = sensorTemp.readLowTempF();
float readHighTempF(void); Retourne le contenu du registre T_HIGH en °F.
// Exemple
float temperature = sensorTemp.readHighTempF();
Consommation, seuils de température et alerte
void sleep(void); Passe le capteur en mode faible consommation (<0,5µA).
// Exemple
sensorTemp.sleep();
void wakeup(void);Réveille le capteur et le ramène en mode consommation normale (~10µA).
// Exemple
sensorTemp.wakeup();
bool alert(void); Retourne le contenu du registre d'alerte. La valeur est identique à celle la broche ALT.
// Exemple
bool state = sensorTemp.alert();
void setLowTempC(float temperature); Ecrit le seuil d'alerte bas (en °C) dans le registre T_LOW.
// Exemple
sensorTemp.setLowTempC(20.0);
void setHighTempC(float temperature); Ecrit le seuil d'alerte haut (en °C) dans le registre T_High.
// Exemple
sensorTemp.setHighTempC(22.0);
void setLowTempF(float temperature); Ecrit le seuil d'alerte bas (en °F) dans le registre T_LOW.
// Exemple
sensorTemp.setLowTempF(84.0);
void setHighTempF(float temperature); Ecrit le seuil d'alerte haut (en °F) dans le registre T_High.
// Exemple
sensorTemp.setHighTempC(85.0);
Utilitaires
void setConversionRate(byte rate); Règle le taux de conversion (0-3).
0 → 0,25Hz
1 → 1Hz
2 → 4Hz (par défaut)
3 → 8Hz
// Exemple
sensorTemp.setConversionRate(3);
void setExtendedMode(bool mode); Active ou désactive le mode étendu.
false → désactive (-55°C à +128°C)
true → active (-55°C à +150°C)
// Exemple
sensorTemp.setExtendedMode(false);
void setAlertPolarity(bool plolarity); Règle la polarité de l'alerte.
false → active à l'état BAS
true → active à l'état HAUT
// Exemple <code cpp>
sensorTemp.setAlertPolarity(false);
void setFault(byte faultSetting); Règle le nombre d'erreurs consécutives.
0 → 1 erreur
1 → 2 erreurs
2 → 4 erreurs
3 → 6 erreurs
// Exemple 
sensorTemp.setFault(1);
void setAlertMode(bool mode); Règle le type d'alerte.
false → Mode comparateur: Actif si temp > T_HIGH ou temp < T_LOW
true → Mode thermostat: actif quand temp > T_HIGH jusqu'à ce qu'une opération de lecture se produise
// Exemple <code cpp>
sensorTemp.setAlertMode(false);

Exemple à télécharger

temp1.cpp
// Réglage de l'intelliSense (pour la classe TMP102)
// "C_Cpp.intelliSenseEngine": "Default" ou
// "C_Cpp.intelliSenseEngine": "Tag Parser" ne doit pas se trouver dans setting.json
// Fermer puis rouvrir éventuellement VSCode après la modification
#include <Wire.h>
#include <SparkFunTMP102.h>
 
TMP102 cptTemp(0x48); // Construction d'un objet TMP102 avec l'adresse I2C 0x48
 
void setup()
{
    Serial.begin(115200); // Débit binaire par défaut du moniteur série
    cptTemp.begin(); // Connexion du capteur au bus I2C
}
 
void loop() {
    float temperature;
    temperature = cptTemp.readTempC(); // Lecture de la température
    Serial.print("Temperature: "); // Affichage dans le moniteur série
    Serial.print(temperature);
    Serial.println();
    delay(1000);
}