Bonjour
J'ai acheté un capteur de température infrarouge MLX90614ESF-AFC.
J'ai suivis le tuto suivant pour le mettre en oeuvre. Cependant, je n'arrive pas à le faire fonctionner et a réceptionner la température.
Je ne suis pas très a l'aise avec l'utilisation de l'i2c sur arduino.
Voici le code proposé par le tuto :
/* Librairie Wire pour les communications I2C */
#include <Wire.h>/* Adresse par défaut du capteur IR */
#define I2C_ADDR 0x5A/** Fonction setup() */
void setup() {/* Initialisation du port série (pour debug) */
Serial.begin(115200);
Serial.println(F("BOOT"));/* Initialisation du bus I2C */
Wire.begin();
}/** Fonction loop() */
void loop() {/* Données brute de température */
uint16_t data;/* Commande de lecture de la RAM à l'adresse 0x07 */
Wire.beginTransmission(I2C_ADDR);
Wire.write(0x07);
Wire.endTransmission(false);/* Lecture des données : 1 mot sur 16 bits + octet de contrôle (PEC) */
Wire.requestFrom(I2C_ADDR, 3, false);
while(Wire.available() < 3);
data = Wire.read();
data |= (Wire.read() & 0x7F) << 8; // Le MSB est ignoré (bit de contrôle d'erreur)
Wire.read(); // PEC
Wire.endTransmission();/* Calcul de la température */
const float tempFactor = 0.02; // 0.02°C par LSB -> résolution du MLX90614
float tempData = (tempFactor * data) - 0.01;
float celsius = tempData - 273.15; // Conversion des degrés Kelvin en degrés Celsius/* Affichage de la température */
Serial.print(F("Celsius: "));
Serial.println(celsius);/* Temps d'attente */
delay(1000);
}
Celui ci datant de 2013, je pense qu'il n'est plus adapté a la version 1.6.
De plus il me semble qu'il y ait quelques incohérences dans le code.
Quelqu'un à déjà utilisé ce type de capteur et peut m'aider svp ?
merci !