🛠 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.

Objetivos

Comunicarse con un dispositivo I2C externo. El GIGA R1 dispone de 3 buses I2C en el STM32H747XI; utilizaremos el bus predeterminado de la biblioteca Wire con un sensor de entorno (temperatura/humedad/presión) comercial, por ejemplo, un BME680 o BMP280. Atención: la placa en sí no incorpora un sensor de temperatura/humedad; el sensor es externo en este caso.

Material

Código completo

// 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);
}

Cableado: VCC a 3,3 V, GND a GND, SDA al pin SDA del GIGA, SCL al pin SCL.

Verificación esperada

El escaneo I2C lista la dirección del sensor (0x76 o 0x77). A continuación, el Monitor serie muestra un identificador de chip coherente (0x58 para BMP280, 0x60/0x61 para BME680) cada dos segundos.

Errores frecuentes

> NO VERIFICADO: la posición exacta de los pines SDA/SCL predeterminados en la serigrafía del GIGA R1 (tabla generada en el cliente en docs.arduino.cc); verifique el esquema de pines oficial antes de cablear.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales