Code Arduino pour un capteur de température LM75A

Code Arduino pour un capteur de température LM75A

Dans ce tutoriel, nous apprendrons comment utiliser le capteur de température LM75A avec un Arduino pour mesurer la température en degrés Celsius et en degrés Fahrenheit. Le capteur LM75A communique via le protocole I2C, ce qui le rend facile à intégrer aux cartes Arduino. À la fin de ce tutoriel, vous disposerez d'une configuration fonctionnelle qui affiche les relevés de température toutes les secondes.

Pour tirer le meilleur parti de ce tutoriel, je recommande de regarder la vidéo associée, qui fournit des indications visuelles sur la configuration et l'implémentation du code (dans la vidéo à 20:29).

Le matériel expliqué

Le capteur de température LM75A est un capteur numérique capable de mesurer la température ambiante avec une grande précision. Il communique via le protocole I2C, ce qui permet de connecter plusieurs capteurs sur le même bus. Le capteur dispose d'une fonction d'arrêt en cas de surtempérature, qui peut aider à économiser de l'énergie lorsqu'il n'est pas utilisé.

Ce capteur est généralement disponible soit sous forme de puce autonome, soit sous forme de module PCB. Le module comprend des broches essentielles telles que VCC, GND, SDA et SCL, nécessaires pour la communication avec l'Arduino. Lors de l'utilisation de ce capteur, il est important de vérifier que les connexions sont correctes et de sélectionner la bonne adresse I2C pour la communication.

Détails de la fiche technique

FabricantNXP / Texas Instruments
Numéro de pièceLM75A
Tension logique / E/S2,7 V à 5,5 V
Tension d'alimentation2,7 V à 5,5 V
Courant de sortie (par canal)3 mA
Courant de crête (par canal)10 mA
Recommandations de fréquence PWMSans objet
Seuils logiques d'entrée0.3 VCC (niveau haut), 0.2 VCC (niveau bas)
Chute de tension / RDS(en conduction)/ saturation0,5 V max
Limites thermiques-55 °C à +125 °C
PaquetSOIC-8 / TSSOP
Notes / variantesDisponible avec différentes adresses I2C

  • Assurez-vous que la bonne adresse I2C est définie dans votre code.
  • Utilisez des résistances pull-up sur les lignes SDA et SCL si nécessaire.
  • Alimentez le capteur avec une tension stable (2,7 V à 5,5 V).
  • Surveillez la surchauffe ; le capteur peut fonctionner jusqu'à 125 °C.
  • Manipulez le capteur avec précaution pour éviter de l'endommager lors de l'installation.

Instructions de câblage

Arduino_wiring_LM75A_bb

Pour câbler le capteur de température LM75A à votre Arduino, commencez par connecter la broche de masse (GND) du capteur à la broche de masse (GND) de votre Arduino. Ensuite, connectez la broche VCC du capteur à la broche 5V de l'Arduino. Pour la communication I2C, reliez la broche SDA du capteur (généralement marquée en vert) à la broche A4 de l'Arduino, et la broche SCL (généralement marquée en bleu) à la broche A5. Si vous utilisez un modèle d'Arduino différent, assurez-vous de connecter les bonnes broches I2C ; par exemple, sur un Arduino Mega, SDA se connecte à la broche 20 et SCL à la broche 21.

Si vous utilisez le LM75A en tant que puce nue plutôt qu'en module, assurez-vous de connecter correctement les broches correspondantes : la broche 1 se connecte à A4 (SDA), la broche 2 à A5 (SCL), la broche 4 à la masse et la broche 8 au VCC. Laissez les autres broches non connectées. Cette configuration garantit que le capteur peut communiquer correctement avec l'Arduino.

Exemples de code et tutoriel pas à pas

Le code suivant initialise le capteur LM75A et lit la température toutes les secondes. L'identifiant clé dans ce code estlm75a_sensor, qui est une instance de la classe LM75A. Cette instance est utilisée pour récupérer les mesures de température du capteur.

LM75A lm75a_sensor(false, false, false);

Cette ligne crée une instance de la classe LM75A, en passant des paramètres qui représentent l'état des broches A0, A1 et A2. L'état par défaut peut être défini surfalsesi ces broches ne sont pas utilisées.

Dans lesetup()Dans la fonction, nous initialisons la communication série à 9600 bauds, ce qui est crucial pour afficher les mesures de température sur le moniteur série.

void setup(void) {
  Serial.begin(9600);
  Serial.println("Robojax LM75A Test");
}

Cet extrait configure le moniteur série, nous permettant de voir les relevés de température imprimés chaque seconde.

Dans leloop()Dans la fonction, nous récupérons la température en degrés Celsius et vérifions s'il y a des erreurs. Si la température est valide, nous l'affichons avec son équivalent en degrés Fahrenheit.

float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
  Serial.println("Error while getting temperature");
} else {
  Serial.print("Temperature: ");
  Serial.print(temperature_in_degrees);
  Serial.print(" degrees (");
  Serial.print(LM75A::degreesToFahrenheit(temperature_in_degrees));
  Serial.println(" Fahrenheit)");
}

Ce segment de code montre comment gérer la lecture de la température et l’afficher à la fois en Celsius et en Fahrenheit sur le moniteur série. Il inclut une gestion des erreurs pour les lectures non valides.

Pour le code complet, consultez la section de chargement au bas de l'article.

Démonstration / À quoi s'attendre

Une fois le câblage terminé et le code téléversé sur votre Arduino, vous devriez voir les relevés de température s'afficher dans le moniteur série toutes les secondes. Vous pouvez tester la réactivité du capteur en le touchant ou en utilisant un pistolet à air chaud, et vous devriez observer les relevés changer en conséquence. Faites attention à l'inversion de polarité lors du branchement du capteur, car cela peut endommager le module.

Images

LM75a-1
LM75a-1
LM75a-3
LM75a-3
LM75a-12
LM75a-12
Arduino_wiring_LM75A_bb
Arduino_wiring_LM75A_bb
127-Arduino code for an LM75A temperature sensor
Langue: C++
Copié !

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Fichier Fritzing