🛠 Connecter un capteur I2C sur le GIGA R1

Arduino GIGA R1 · intermediaire · Schéma : IMG-giga-r1-i2-1-i2c-capteur.svg — Capteur d'environnement I2C externe relié aux broches SDA et SCL du GIGA R1 avec résistances de pull-up et alimentation 3,3 V.

Objectifs

Communiquer avec un périphérique I2C externe. Le GIGA R1 dispose de 3 bus I2C sur le STM32H747XI ; nous utiliserons le bus par défaut de la bibliothèque Wire avec un capteur d'environnement (température/humidité/pression) du commerce, par exemple un BME680 ou BMP280. Attention : la carte elle-même n'embarque pas de capteur de température/humidité — le capteur est ici externe.

Matériel

Code complet

// GIGA R1 WiFi — scanner I2C puis lecture d'un capteur BMP280/BME680 (adresse 0x76/0x77)
#include <Arduino.h>
#include <Wire.h>

const uint8_t ADRESSE_CAPTEUR = 0x76;   // 0x77 selon le brochage ADDR du module

void setup {
  Serial.begin(115200);
  Wire.begin;                            // bus I2C par defaut (SDA/SCL)
  delay(1000);

  // Petit scanner : liste les peripheriques presents
  Serial.println("Scan du bus I2C :");
  for (uint8_t a = 1; a < 127; a++) {
    Wire.beginTransmission(a);
    if (Wire.endTransmission == 0) {
      Serial.printf("  peripherique trouve a 0x%02X\n", a);
    }
  }
}

void loop {
  // Lecture de l'identifiant de puce (registre 0xD0 pour BMP280/BME680)
  Wire.beginTransmission(ADRESSE_CAPTEUR);
  Wire.write(0xD0);
  Wire.endTransmission(false);
  Wire.requestFrom(ADRESSE_CAPTEUR, (uint8_t)1);
  if (Wire.available) {
    uint8_t chipId = Wire.read;
    Serial.printf("Chip ID = 0x%02X (attendu 0x58/0x60/0x61)\n", chipId);
  } else {
    Serial.println("Capteur absent : verifiez SDA/SCL et l'adresse");
  }
  delay(2000);
}

Câblage : VCC vers 3,3 V, GND vers GND, SDA vers la broche SDA du GIGA, SCL vers la broche SCL.

Vérification attendue

Le scan I2C liste l'adresse du capteur (0x76 ou 0x77). Ensuite, le Moniteur série affiche un identifiant de puce cohérent (0x58 pour BMP280, 0x60/0x61 pour BME680) toutes les deux secondes.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels