🛠 Ajouter un capteur I²C (température) sur A4/A5

Arduino Pro Mini · intermediaire · Schéma : IMG-pro-mini-intermediaire-6-promini-capteur-i2c.svg — capteur de température I²C MCP9808 relié à SDA/A4 et SCL/A5 de l'Arduino Pro Mini, emplacements de résistances de pull-up I²C visibles sur la carte

Objectifs

Exploiter le bus I²C/TWI natif de l'ATmega328P : sur la Pro Mini, SDA est sur A4 et SCL sur A5, sur la même rangée de picots que les entrées analogiques. La dernière révision SparkFun ajoute même des empreintes SMD pour souder les résistances de pull-up I²C — utile en montage fixe, car beaucoup de modules les embarquent déjà. On lit un capteur de température MCP9808 (adresse 0x18) avec la bibliothèque Wire et on affiche les degrés Celsius.

Matériel

Code complet

// Capteur temperature I2C MCP9808 sur A4 (SDA) / A5 (SCL)
#include <Wire.h>

const uint8_t ADDR = 0x18;   // adresse par defaut du MCP9808

void setup {
  Serial.begin(57600);
  Wire.begin;              // maitre I2C, broches A4/A5 fixes sur 328P
  if (Wire.requestFrom(ADDR, (uint8_t)1) == 0) {
    Serial.println(F("Capteur absent ! Verifier SDA/SCL/adresse"));
  }
}

void loop {
  Wire.beginTransmission(ADDR);
  Wire.write(0x05);                 // registre ambient temperature
  Wire.endTransmission;
  Wire.requestFrom(ADDR, (uint8_t)2);
  if (Wire.available >= 2) {
    int16_t brut = (Wire.read << 8) | Wire.read;
    if (brut & 0x8000) brut -= 0x10000;   // signe negatif
    float t = (brut & 0x0FFF) * 0.0625;   // resolution 1/16 degre
    Serial.print(F("T = "));
    Serial.print(t);
    Serial.println(F(" C"));
  }
  delay(1000);
}

Vérification attendue

Le moniteur série affiche une température cohérente (~20-25 °C en intérieur), qui monte quand on pince le capteur entre les doigts. Le test de présence du setup n'affiche aucune erreur si SDA/SCL sont bien sur A4/A5 et que les pull-up existent. Sur la dernière révision de la carte, les deux petites empreintes près de A4/A5 permettent de souder des résistances 0603 4,7 kΩ pour un bus propre en installation permanente.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels