{{ :suivant.png?nolink&30|}} {{ :retour.png?nolink&30|}} [[arduino:accueilarduino|{{ :iconemaison.jpg?nolink&30|Sommaire Arduino}}]] ===== Bibliothèques - Sparkfun TMP102, TMP117 ===== Mise à jour le [18/8/2023] {{ :arduino:arduino.png?nolink|}} ==== Ressources ==== * **Description** en français sur Github lien * **Guide** sur le site Sparkfun lien. ==== 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 ==== * VCC → 3.3V * GND → GND * SDA → SDA/A4 * SCL → SCL/A5 * ALT → A3 Exemple avec une ancien modèle de carte {{ :arduino:tmp102_fritzing_hookup_1.jpg?nolink&500 |}} * ADD0 est utilisée pour changer l'adresse du TMP102. * VCC → 0x49 * SDA → 0x4A * SCL → 0x4B ==== La classe TMP102 (TMP117) ==== === Constructeur === ^ ____ ^Syntaxe^Description^ |{{ :arduino:methode.png?nolink |}}|TMP102(**byte** adresse);| Initialise un objet TMP102 avec l'adresse passée en paramètre // Exemple TMP102 sensorTemp(0x48);| === Méthodes ==== ^ ____ ^ **Syntaxe** ^ **Description** ^ |**Initialisation**||| |{{ :arduino:methode.png?nolink |}}|**void** begin(**void**);| Connecte le capteur au bus I2C. // Exemple sensorTemp.begin();| |**Lecture de la température**||| |{{ :arduino:methode.png?nolink |}}|**float** readTempC(**void**);| Retourne la température en °C. // Exemple float temperature = sensorTemp.readTempC();| |{{ :arduino:methode.png?nolink |}}|**float** readTempF(**void**);| Retourne la température en °F. // Exemple float temperature = sensorTemp.readTempF();| |{{ :arduino:methode.png?nolink |}}|**float** readLowTempC(**void**);| Retourne le contenu du registre T_LOW en °C. // Exemple float temperature = sensorTemp.readLowTempC();| |{{ :arduino:methode.png?nolink |}}|**float** readHighTempC(**void**);| Retourne le contenu du registre T_HIGH en °C. // Exemple floattemperature = sensorTemp.readHighTempC();| |{{ :arduino:methode.png?nolink |}}|**float** readLowTempF(**void**);| Retourne le contenu du registre T_LOW en °F. // Exemple float temperature = sensorTemp.readLowTempF();| |{{ :arduino:methode.png?nolink |}}|**float** readHighTempF(**void**);| Retourne le contenu du registre T_HIGH en °F. // Exemple float temperature = sensorTemp.readHighTempF();| |**Consommation, seuils de température et alerte**||| |{{ :arduino:methode.png?nolink |}}|**void** sleep(**void**);| Passe le capteur en mode faible consommation (<0,5µA). // Exemple sensorTemp.sleep();| |{{ :arduino:methode.png?nolink |}}|**void** wakeup(**void**);|Réveille le capteur et le ramène en mode consommation normale (~10µA). // Exemple sensorTemp.wakeup();| |{{ :arduino:methode.png?nolink |}}|**bool** alert(**void**);| Retourne le contenu du registre d'alerte. La valeur est identique à celle la broche ALT.// Exemple bool state = sensorTemp.alert();| |{{ :arduino:methode.png?nolink |}}|**void** setLowTempC(**float** temperature);| Ecrit le seuil d'alerte bas (en °C) dans le registre T_LOW.// Exemple sensorTemp.setLowTempC(20.0);| |{{ :arduino:methode.png?nolink |}}|**void** setHighTempC(**float** temperature);| Ecrit le seuil d'alerte haut (en °C) dans le registre T_High.// Exemple sensorTemp.setHighTempC(22.0);| |{{ :arduino:methode.png?nolink |}}|**void** setLowTempF(**float** temperature);| Ecrit le seuil d'alerte bas (en °F) dans le registre T_LOW.// Exemple sensorTemp.setLowTempF(84.0);| |{{ :arduino:methode.png?nolink |}}|**void** setHighTempF(**float** temperature);| Ecrit le seuil d'alerte haut (en °F) dans le registre T_High.// Exemple sensorTemp.setHighTempC(85.0);| |**Utilitaires**||| |{{ :arduino:methode.png?nolink |}}|**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);| |{{ :arduino:methode.png?nolink |}}|**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);| |{{ :arduino:methode.png?nolink |}}|**void** setAlertPolarity(**bool** plolarity);| Règle la polarité de l'alerte. \\ false -> active à l'état BAS \\ true -> active à l'état HAUT// Exemple sensorTemp.setAlertPolarity(false);| |{{ :arduino:methode.png?nolink |}}|**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);| |{{ :arduino:methode.png?nolink |}}|**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 sensorTemp.setAlertMode(false);| ==== Exemple à télécharger ==== // 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 #include 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); }