TroubleshootingGravity

Sen0206 (MLX90614) I2C Not Detected during I2CScan

userHead Brandon.lee 2024-02-19 03:34:39 121 Views1 Replies

Hello, hoping to get some assistance.

 

Using arduino IDE and running the I2CScan, I am unable to pickup my DFRobot_MLX90614 (Sen0206) I2C address. When I plug in an OLED screen, it is detected right away. 
Sen0206 is plugged into 3.3volts, and the SDA/SCL are in the correct orientation, however, I have tried them in reverse just to be sure.

 

When the sensor is connected to the board, I can measure the voltages at the contact pads at the board - VCC 3.3v, SDA 3.3v, and SCL has 3.3v. WHen running the scan, SDA and SCL do not decrease at all, they maintain 3.3v.

When an OLED screen is connected, SDA and SCL drop to ~1.7V during the scan.

 

 

I have two Sen0206 and both are having the same issue. 

 

Please help, I really want these sensors to work!

2024-02-19 10:26:29

Hello,

 

This is unlikely that both sensors are malfunctioning, is it possible for you to provide us with a photo that shows how the sensor and boards are connected? 

If you are using Arduino IDE, you can also try the following I2C scanning code :

 

 

#include <Wire.h> // Include the Wire library for I2C communication

// Setup function initializes the serial communication and I2C
void setup() {
 Serial.begin(9600); // Initialize serial communication with a baud rate of 9600
 Wire.begin(); // Initialize the I2C communication
 
 Serial.println("Start I2C address scan"); // Print a message to indicate the scan is starting
}

// Loop function continuously scans for I2C devices
void loop() {
 byte device_address; // Variable to store the I2C device address
 int nDevices; // Variable to store the number of devices found

 // Search for devices on the I2C bus
 nDevices = Wire.scan(); // Perform the scan and store the number of devices found

 // Print the number of devices found
 Serial.print("Number of devices found: ");
 Serial.println(nDevices);

 // Loop through all the devices found
 for (int i = 0; i < nDevices; i++) {
   // Get the address of the current device
   device_address = Wire.getDeviceList();

   // Print the device address
   Serial.print("Device address: ");
   Serial.print(device_address, HEX); // Print the address in hexadecimal format
   Serial.println(" (0x"); // Print a prefix to indicate hexadecimal format
 }

 // Wait for a few seconds before scanning again
 delay(5000);
}

 


 

userHeadPic xingzhao.zhu