ICM-20948 9-axis IMU breakout con ESP32

Alimentazione 3.3 V Bus I2C Indirizzo I2C 0x68 / 0x69 Misura accelerazione, rotazione, campo magnetico, temperatura
VINGNDSCLSDAAD0CSINTFSYNC

Pin e collegamento all’ESP32

PinRuoloPin ESP32Note
VINAlimentazione3V3Pin order and labels differ between sellers: check the silkscreen
GNDMassaGND
SCLClock I2C (SCL)D22
SDADati I2C (SDA)D21
AD0Non collegato all’ESP32—Address select: LOW = 0x68, HIGH = 0x69 (some boards pull it HIGH)
CSNon collegato all’ESP32—SPI chip select. Leave unconnected or HIGH for I2C
INTInterruptD35Interrupt output, optional
FSYNCNon collegato all’ESP32—Frame sync. Leave unconnected or tie to GND

Collegamento consigliato per l’ESP32 DevKit a 30 pin, evitando i pin della flash, di sola lettura e di strapping. BoardPilot lo controlla mentre colleghi.

Verifica che sia il chip originale

Leggi il registro 0x00: un componente originale risponde 0xea. BoardPilot lo fa da solo in “Risolvi un problema”.

Codice di partenza (Arduino)

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);  // SDA = GPIO 21, SCL = GPIO 22
  Wire.beginTransmission(0x68);
  bool found = Wire.endTransmission() == 0;
  Serial.println(found ? "ICM-20948 9-axis IMU breakout found at 0x68" : "Not found: check power, GND and SDA/SCL");
}

void loop() {}

Fonti

Provalo in 3D in BoardPilot

BoardPilot Dati del componente (JSON)

Componenti simili

Dati dei componenti: CC BY 4.0, riutilizzabili citando BoardPilot.