Cómo fijar la dirección
La dirección se guarda en la EEPROM del chip y se puede reprogramar; 0x33 es la de fábrica.
Dispositivos que usan las mismas direcciones
Ninguno de los otros 87 dispositivos de nuestra lista comparte dirección con el MLX90640, así que rara vez dará conflictos.
Comprobar todo el bus →Añade el MLX90640 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 0x33 o como 0x66. La biblioteca Wire de Arduino y ESPHome usan la forma de 7 bits.
| 7 bits | Binario | Escritura 8 bits | Lectura 8 bits |
|---|---|---|---|
| 0x33 | 0110011 | 0x66 | 0x67 |
Comprueba que responde
Sube este sketch con el MLX90640 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[] = {0x33};
void setup() {
Serial.begin(115200);
Wire.begin();
for (byte a : ADDRS) {
Wire.beginTransmission(a);
if (Wire.endTransmission() == 0) {
Serial.print("MLX90640 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 MLX90640?
0x33 por defecto. La dirección se guarda en la EEPROM del chip y se puede reprogramar; 0x33 es la de fábrica.
¿Puedo usar más de un MLX90640 en el mismo bus?
Sí, una vez que cada uno tenga su propia dirección.
¿Por qué el MLX90640 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 (0x33), no la de 8 bits (0x66).
Dispositivos similares
MAX30100 MAX30102 MLX90614 PN532
Direcciones comprobadas en la hoja de datos del MLX90640.