The MLX90614 operates entirely over I2C. Connect the pins as follows: MLX90614 Pin Arduino Uno Pin Description Power Supply GND SDA Serial Data Line (Requires 4.7kΩ pull-up to VCC) SCL Serial Clock Line (Requires 4.7kΩ pull-up to VCC)
This creates a paradox: How do you write, test, and debug I2C code for an MLX90614 without soldering a single wire? The answer lies in the —a custom-built simulation model.
The code below utilizes the standard, widely supported . Ensure you install this via the Arduino Library Manager ( Sketch > Include Library > Manage Libraries... ) before compiling. mlx90614 proteus library
or a Virtual Terminal for serial print debugging PCF8574 (Optional, if you want an I2C-driven LCD display) Resistors (Two 4.7kΩ resistors for I2C pull-up networks) Schematic Wiring Guide MLX90614 Pin Arduino Uno Pin Connection Type VCC 5V / 3.3V Power Rail Power Supply GND GND Power Rail SDA Analog Pin A4 I2C Data Line (Requires 4.7kΩ Pull-up to VCC) SCL Analog Pin A5 I2C Clock Line (Requires 4.7kΩ Pull-up to VCC)
I2C compatible SMBus (System Management Bus) or PWM. Factory Calibrated Temperature Ranges: Ambient Temperature: -40°C to +125°C. Object Temperature: -70°C to +380°C. The MLX90614 operates entirely over I2C
Wire.requestFrom(MLX_ADDR, 2); byte lsb = Wire.read(); byte msb = Wire.read(); int raw = (msb << 8)
To use the MLX90614 in your simulation, you need library files (typically ) specifically designed for it. Locate Files The code below utilizes the standard, widely supported
It uses a digital SMBus interface, which is highly compatible with the I2C protocol.
Let’s simulate a complete non-contact thermometer using: