Cómo fijar la dirección
No tiene pin de dirección: la dirección viene fijada de fábrica, así que siempre es 0x69.
Para I²C el pin SEL debe ir a GND.
Dispositivos que usan las mismas direcciones
Dos dispositivos del mismo bus no pueden responder en la misma dirección. Estos módulos de nuestra lista también usan 0x69:
| Dispositivo | Qué es | Dirección compartida |
|---|---|---|
| BMI270 | IMU de 6 ejes | 0x69 |
| MPU-6050 | acelerómetro + giroscopio de 6 ejes | 0x69 |
| MPU-6886 | IMU de 6 ejes | 0x69 |
| MPU-9250 | IMU de 9 ejes (acelerómetro, giroscopio, magnetómetro AK8963) | 0x69 |
| PCA9685 | controlador PWM / servos de 16 canales, 12 bits | 0x69 |
Si dos acaban en la misma dirección, mueve uno con su pin de dirección, pon uno detrás de un multiplexor TCA9548A (0x70–0x77) o usa un segundo bus I²C: el ESP32, el ESP32-S3 y el RP2040 tienen dos controladores I²C (el ESP32-C3 tiene uno).
Comprobar todo el bus →Añade el SEN50 / SEN54 / SEN55 y el resto de tus módulos: la herramienta encuentra los conflictos, propone direcciones libres y calcula las pull-ups.
Dirección de 7 y de 8 bits
Las direcciones I²C tienen 7 bits. Algunas hojas de datos y bibliotecas las escriben como números de 8 bits, con el bit de lectura/escritura añadido a la derecha: por eso el mismo chip puede aparecer como 0x69 o como 0xD2. La biblioteca Wire de Arduino y ESPHome usan la forma de 7 bits.
| 7 bits | Binario | Escritura 8 bits | Lectura 8 bits |
|---|---|---|---|
| 0x69 | 1101001 | 0xD2 | 0xD3 |
Comprueba que responde
Sube este sketch con el SEN50 / SEN54 / SEN55 conectado a SDA y SCL: prueba todas las direcciones que puede usar el chip y muestra en el monitor serie la que responde. En el ESP32 los pines por defecto son GPIO21 (SDA) y GPIO22 (SCL); en un Arduino Uno, A4 y A5.
#include <Wire.h>
const byte ADDRS[] = {0x69};
void setup() {
Serial.begin(115200);
Wire.begin();
for (byte a : ADDRS) {
Wire.beginTransmission(a);
if (Wire.endTransmission() == 0) {
Serial.print("SEN50 / SEN54 / SEN55 responde en 0x");
if (a < 0x10) Serial.print('0');
Serial.println(a, HEX);
return;
}
}
Serial.println("Sin respuesta: revisa el cableado");
}
void loop() {}
En ESPHome el bus se escanea al arrancar (scan: true es el valor por defecto): el log muestra todas las direcciones que responden.
i2c:
sda: GPIO21
scl: GPIO22
scan: true
Resistencias de pull-up
SDA y SCL necesitan resistencias de pull-up a la alimentación. Muchos módulos ya las llevan, a menudo de 4,7 kΩ o 10 kΩ, y con varios módulos en el bus se suman en paralelo. La herramienta de direcciones I²C calcula el rango admitido para la tensión y la velocidad de tu bus.
Preguntas frecuentes
¿Cuál es la dirección I2C del SEN50 / SEN54 / SEN55?
0x69. Es fija: no tiene pin de dirección.
¿Puedo usar más de un SEN50 / SEN54 / SEN55 en el mismo bus?
No directamente: la dirección es fija, así que chocarían. Pon cada uno en un canal distinto de un multiplexor TCA9548A o usa un segundo bus I²C.
¿Por qué el SEN50 / SEN54 / SEN55 no aparece al escanear el bus I2C?
Revisa, por este orden: que SDA y SCL no estén intercambiados; que las placas compartan masa; que haya resistencias de pull-up en SDA y SCL; que el módulo esté alimentado a la tensión que le corresponde; y que tu código use la dirección de 7 bits (0x69), no la de 8 bits (0xD2).
Dispositivos similares
AHT20 BME280 BME680 BME688 BMP180 BMP280 BMP388 CCS811 ENS160 HDC1080 HTU21D LM75B LPS22HB MCP9808 MS5611-01BA SCD30 SCD40 / SCD41 SGP30 SGP40 SGP41 SHT30 / SHT31 / SHT35 SHT40 / SHT41 / SHT43 / SHT45 (SHT4x) SHTC3 Si7021 TMP102 TMP117
Direcciones comprobadas en la hoja de datos del SEN50 / SEN54 / SEN55.