Pour faciliter le développement de vos objets connectés à base de micro-contrôleurs Arduino, ESP32, ESP8266, STM32 ou Raspberry Pi, voici une liste des modules (breakout) I2C les plus courants. Capteurs d’ambiance (température, humidité relative, pression atmosphérique, intensité lumineuse…), détection de polluants (CO, CO2, eTVOC…), caméra thermique AMG8833, écrans LDC2004 ou SSD1306 et cartes d’extension E/S numériques ou analogiques.
Chaque fabricant a prévu une méthode pour activer l’adresse I2C alternative. Généralement, il faudra faire une petite soudure sur le module (breakout) ou appliquer une tension (3V3 ou 5V par exemple). Par contre, il est très rarement possible de modifier l’adresse par programmation.
Voici deux exemples que l’on rencontre assez souvent
Pour en savoir plus sur le bus I2C, vous pouvez continuer par la lecture de cet article
Sommaire
- 1 Scanner I2C Arduino, ESP32 ou ESP8266
- 2 Mesure de courant
- 3 Détection de polluants. C0, CO2
- 4 Caméra thermique I2C
- 5 Accéléromètre, gyroscope, magnétomètre
- 6 Ecrans OLED et LCD sur bus I2C
- 7 Cartes d’extension E/S numériques supplémentaires, horloge RTC
- 8 Classement des équipements par adresse I2C
- 8.1 0x10
- 8.2 0x11
- 8.3 0x13
- 8.4 0x18
- 8.5 0x19
- 8.6 0x1C
- 8.7 0x1D
- 8.8 0x1E
- 8.9 0x20
- 8.10 0x23
- 8.11 0x26
- 8.12 0x27
- 8.13 0x28
- 8.14 0x29
- 8.15 0x33
- 8.16 0x38
- 8.17 0x39
- 8.18 0x3C
- 8.19 0x40
- 8.20 0x41
- 8.21 0x44
- 8.22 0x48
- 8.23 0x50
- 8.24 0x52
- 8.25 0x53
- 8.26 0x57
- 8.27 0x58
- 8.28 0x5A
- 8.29 0x5C
- 8.30 0x5E
- 8.31 0x60
- 8.32 0x62
- 8.33 0x68
- 8.34 0x6A
- 8.35 0x70
- 8.36 0x76
- 8.37 0x77
- 9 Mises à jour
Scanner I2C Arduino, ESP32 ou ESP8266
Si vous ne trouvez pas l’adresse I2C de votre composant ou que vous rencontrez des problèmes de communication, voici le code source d’un scanner I2C compatible Arduino, ESP32 et ESP8266.
#include
#include
#define DISPLAY_ERROR false
#define LOOP_DELAY 10000
#define USER_PIN false
// Personnaliser les broches du bus I2C pour ESP8266 ou ESP32
// Customize I2C bus pins for ESP8266 or ESP32
const int PIN_SCL = D1;
const int PIN_SDA = D2;
String I2Ctest() {
byte error, address;
int nDevices;
String s;
s="Scanning...\n";
nDevices = 0;
for(address = 1; address < 127; address++ ) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
s+="I2C device found at 0x";
if (address 0 ) {
if ( DISPLAY_ERROR ) {
s+="Unknow error at 0x";
if (address 0,7 VCC
Projets et articles sur le BH1750FVI
Pression atmosphérique de 300 ~ 1100 hPa
Humidité de 0 ~ 100%
Pression atmosphérique de 300 ~ 1100 hPa
Humidité de 0 ~ 100%
Pression atmosphérique de 300 ~ 1100 hPa
Humidité relative de 20 à 95% (±5°C)
à
0x7F
Pression atmosphérique de 10 ~ 1200 mbar
Humidité de 0 ~ 80%
Mesure de courant
Détection de polluants. C0, CO2
Caméra thermique I2C
Accéléromètre, gyroscope, magnétomètre
Pour télécommander un bras robotique, un drone, un jeu…
Tableau comparatif des breakouts les plus courants, MPU6050, MPU9250 et ADXL345.
MPU6050 | ADXL345 | MPU9250 | |
Gyroscope (axes) | 3 | 3 | 3 |
Game de mesure du gyroscope | ±250, ±500, ±1000, ±2000°/sec | ||
Accéléromètre (axes) | 3 | 3 | 3 |
Gamme de mesure de l’accéléromètre | ±2g /±4g /±8g /±16g | ±2g /±4g /±8g /±16g | ±2g /±4g /±8g /±16g |
Magnétomètre (axes) | 3 | ||
Capacité de mesure du magnétomètre | ±4800µT | ||
Degrés de libertés (DOF) total | 6 | 6 | 9 |
Adresses I2C | 0x68 0x69 | 0x1C | 0x68 0x0C |
Vitesse max. du bus I2C | 400 kHz | 400 kHz | 400 kHz |
SPI | ✓ | ✓ | ✓ |
Tension d’alimentation | 2.375V ~ 3.46V | 2.0V ~ 3.6V | 2.4V ~ 3.6V |
Consommation | 23 µA
0.1 µA (standby) |
3.5mA | |
Fonctionnement | -40°C ~ 85°C | -40°C ~ 85°C | -40°C ~ 85°C |
Documentation technique | Consulter | Consulter | Consulter |
Acheter |
14,99€ actualisé le 25 septembre 2022 17 h 56 min 30,99€ actualisé le 25 septembre 2022 17 h 56 min |
Ecrans OLED et LCD sur bus I2C
Equipement | Application | Adresse I2C | Adresse alternative | Acheter |
LCD2004 | Ecran d’affichage LCD 4 lignes | 0x27 | ||
SSD1306 | Ecrans OLED noir et blanc, 64×64 ou 128×68 pixels | 0x3C | 128×64 pixels | |
Projets et articles |
Cartes d’extension E/S numériques supplémentaires, horloge RTC
Equipement | Application | Adresse I2C | Adresse alternative | Acheter |
ADS1115 | 4 entrées A/N 16 bits supplémentaires | 0x48 | 0x4B | |
DS1307 | Horloge temps réel avec éventuellement une sauvegarde par batterie | 0x68 | ||
MCP23017 | 16 entrées/sorties numériques supplémentaires, boîtier DIP28
Vitesse bus : 100kHz, 400kHz, 1.7MHz MCP23S17 pour le bus SPI |
0x20 | 0x27 | |
PCF8574 | 8 entrées/sorties numériques supplémentaires
Vitesse bus : 100kHz, 400kHz, 1MHz Documentation technique |
0x38 | 0x3F | |
PCA9685 | 16 canaux PWM 12 bits | 0x40 | 0x7F | |
Projets et articles |
Classement des équipements par adresse I2C
0x10
VEML6075 Capteur UV. 0x10 uniquement
VEML7700 Capteur de lumière ambiante. 0x10 uniquement
0x11
Si4713 Transmetteur FM avec RDS. 0x11 ou 0x63
0x13
VCNL40x0 Capteur de proximité. 0x13 uniquement
0x18
MCP9808 Capteur de température. De 0x18 à 0x1F
LIS3DH Accéléromètre 3 axes. 0x18 ou 0x19
0x19
LSM303 Accéléromètre. 0x1E pour le magnétomètre
0x1C
LSM303 Magnétomètre. 0x19 pour l’accéléromètre
MMA845x Accéléromètre 3 axes. 0x1C ou 0x1D. Obsolète
FXOS8700 Accéléromètre + magnétomètre. 0x1C, 0x1D, 0x1E ou 0x1F. Obsolète
MMA7455L Accéléromètre. 0x1C ou 0x1D
0x1D
LSM9DS0 IMU 9 axes (0x1D ou 0x1E pour Accel / Mag, 0x6A ou 0x6B pour Gyro)
ADXL345 Accéléromètre 3 axes. 0x1D ou 0x53
0x1E
HMC5883 Magnétomètre. 0x1E uniquement
LIS2MDL Magnétomètre. 0x1E uniquement.
0x20
FXAS21002 Gyroscope. 0x20 ou 0x21
MCP23008 Module d’extension GPIO. 0x20 ou 0x27
MCP23017 Module d’extension GPIO. 16 entrées/sorties numériques supplémentaires. 0x20 ou 0x27
0x23
BH1750 Intensité lumineuse 0 ~ 65535 lux, convertisseur 16 bits. 0x23 ou 0x5C
0x26
MSA301 Accéléromètre 3 axes. 0x26 uniquement. Obsolète
0x27
LCD2004 Pilote pour écran d’affichage LCD 4 lignes. 0x27 uniquement
0x28
BNO055 IMU. 0x28 ou 0x29
CAP1188 détecteur tactile capacitif 8 canaux. De 0x28 à 0x2D
DS3502 Potentiomètre numérique 10K. De 0x28 à 0x2B. Obsolète
PCT2075 Capteur de température. Plusieurs plages disponibles : 0x28-0x2E, 0x48-0x4F, 0x70-0x77
0x29
TCS34725 Capteur de couleur. 0x29 uniquement
TSL2561 Capteur de lumière. 0x29, 0x39 ou 0x49
TSL2591 Capteur de lumière. 0x29 ou 0x28
VL53L0x Mesure de distance par laser ToF. 0x29, configurable depuis le code
VL6180X Capteur ToF. 0x29 uniquement
0x33
MLX90640 Caméra thermique infrarouge 8×8 pixels. 0x33 uniquement
0x38
VEML6070 Index UV. 0x38 ou 0x39
FT6x06 Détecteur tactile capacitif. 0x38 uniquement. Obsolète
PCF8574 8 entrées/sorties numériques supplémentaires. 0x38 ou 0x3F
0x39
APDS-9960 Capteur IR / Couleur / Proximité. 0x39 uniquement
0x3C
SSD1305 OLED monochrome. 0x3C ou 0x3D à l’aide d’un jumper à souder sur certaines cartes
SSD1306 OLED monochrome. 0x3C ou 0x3D à l’aide d’un jumper à souder sur certaines cartes
0x40
Si7021 Capteur d’humidité / température. 0x40 uniquement
HTU21D-F Capteur d’humidité / température. 0x40 uniquement. Obsolète
HDC1008 Capteur d’humidité / température. 0x40, 0x41, 0x42 ou 0x43. Obsolète
TMP007 Capteur de température IR. De 0x40 à 0x47. Obsolète
TMP006 Capteur de température IR. De 0x40 à 0x47. Obsolète
PCA9685 carte d’extension 16 canaux PWM. De 0x40 à 0x7F
INA219 Capteur de courant / tension CC. De 0x40 à 0x7F
INA260 Capteur de courant / puissance CC de précision. De 0x40 à 0x7F. Obsolète
0x41
STMPE610 / STMPE811 Détecteur tactile résistif . 0x41 ou 0x44. Obsolète
0x44
SHT30 Capteur d’humidité / température. 0x44 ou 0x45
ISL29125 Capteur de couleur RBG. 0x44 uniquement
0x48
ADS1115 carte d’extension 4 canaux ADC 16 bits. 0x48 0x49 0x4A ou 0x4B
PN532 Lecteur NFC / RFID. 0x48 uniquement
0x50
MB85RC module mémoire FRAM. De 0x50 à 0x57
0x52
Manette Nintendo Nunchuck. 0x52
0x53
ADXL345 Accéléromètre 3 axes. 0x1D ou 0x53
0x57
MAX3010 Capteur de pouls et d’oxymétrie
0x58
TPA2016 Amplificateur audio I2C
SGP30 Mesure de la qualité de l’air (IAQ)
0x5A
MPR121 Capteur tactile capacitif 12 points. 0x5A, 0x5B, 0x5C ou 0x5D
CCS811 Capteur COV. 0x5A ou 0x5B
MLX9061x Capteur de température sans contact par IR de -40°C à +125°C. 0x5A uniquement
DRV2605 Pilote pour moteur Haptic. 0x5A uniquement. Obsolète
0x5C
AM2315 Capteur d’humidité et de température. 0x5C uniquement
AM2320 Capteur d’humidité et de température. 0x5C uniquement
LPS25 Baromètre numérique. 0x5C ou 0x5D.
LPS33HW Baromètre numérique. 0x5C ou 0x5D.
LPS35HW Baromètre numérique. 0x5C ou 0x5D.
0x5E
TLV493D Magnétomètre 3 axes. 0x5E
0x60
MCP4728 Convertisseur Analogique numérique 12 bits, 4 entrées. 0x60 uniquement
MPL115A2 Baromètre numérique. 0x60
MPL3115A2 Baromètre numérique. 0x60 uniquement
Si5351A Générateur d’horloge. 0x60 ou 0x61
Si1145 Capteur de lumière / infrarouge. 0x60 uniquement
MCP4725A0 DAC 12 bits. 0x60 ou 0x61
TEA5767 Récepteur radio stéréo.0x60 uniquement
VCNL4040 Capteur de proximité et de lumière ambiante. 0x60 uniquement
0x62
MCP4725A1 DAC 12 bits. 0x62 ou 0x63
0x68
AMG8833 Caméra thermique IR Breakout (0x68 ou 0x69)
DS1307 Horloge RTC
DS3231 Horloge RTC
ICM-20649 Accéléromètre + Gyroscope. 0x68 ou 0x69
ITG3200 Gyroscope. 0x68 ou 0x69
MPU-9250 9-DoF IMU. 0x68 ou 0x69
MPU-60X0 Accéléromètre + Gyroscope. 0x68 ou 0x69
PCF8523 Horloge RTC. 0x68 uniquement
0x6A
ICM330DHC IMU 6 axes. 0x6A ou 0x6B
L3GD20H Gyroscope. 0x6A ou 0x6B
LSM6DS33 IMU 6 axes. 0x6A ou 0x6B
LSM6DSOX IMU 6 axes. 0x6A ou 0x6B
0x70
HT16K33 Pilote de matrice LED (0x70 – 0x77)
TCA9548 Carte d’extension 8 sorties numériques supplémentaires. De 0x70 à 0x77
0x76
BMP280 Température, pression atmosphérique. 0x76 ou 0x77
BME280 Température, humidité, pression atmosphérique. 0x76 ou 0x77
BME680 Température, humidité, pression atmosphérique, qualité de l’air (IAQ). 0x76 ou 0x77
MS5607 / MS5611 Baromètre numérique. 0x76 ou 0x77
0x77
BMA180 Accéléromètre. 0x77 uniquement
BMP085 Température, baromètre. 0x77 uniquement. Obsolète
0xB8
Mises à jour
6/10/2020 Classement des composant par adresse I2C
6/10/2020 Ajout du scanner I2C compatible Arduino, ESP32 et ESP8266. Adresse I2C de l’horloge temps réel DS1307
24/08/2020 Première publication de l’article
Avez-vous aimé cet article ?