Mlx90614 Proteus Library
You cannot manually turn a knob on the MLX90614 symbol, but you can use the Proteus VSM Studio or DC Generator via the SPI or I2C debugger. Some advanced libraries include a thermal slider. If yours does not:
Even with the library installed, you may encounter issues.
| Symptom | Likely Cause | Solution |
| :--- | :--- | :--- |
| "No model specified" | The .HEX file path is broken | Re-link the file; ensure paths have no spaces. |
| Reads always -273.15 | The I2C pointer register not set | Verify endTransmission(false) for repeated start. |
| Simulation crashes on start | Library compiled for older Proteus (v7 vs v8) | Use a HEX to COFF converter or find a v8-compatible version. |
| No SDA/SCL activity | Pull-ups missing | Add 10k resistors from SDA/SCL to VDD in schematic. |
| Address conflict | Another device at 0x5A | Change one device's address in properties or disconnect. |
In the simulation environment, the MLX90614 model typically allows the user to edit properties. Double-clicking the sensor component often reveals an "Edit Properties" dialog where a static temperature value can be entered for simulation purposes, or in advanced models, a dynamic voltage input may represent temperature.
Use the MLX90614_Proteus Arduino project (available on GitHub) to generate the .HEX file yourself if you have an actual sensor. mlx90614 proteus library
This code snippet illustrates reading the object temperature register.
#include <Wire.h>#define MLX90614_ADDR 0x5A #define MLX90614_OBJ_TEMP 0x07
void setup() Serial.begin(9600); Wire.begin();
void loop() float temp = readTemperature(); Serial.print("Object Temperature: "); Serial.print(temp); Serial.println(" C"); delay(1000); You cannot manually turn a knob on the
float readTemperature() int16_t rawTemp;
Wire.beginTransmission(MLX90614_ADDR); Wire.write(MLX90614_OBJ_TEMP); Wire.endTransmission(false);
Wire.requestFrom(MLX90614_ADDR, 3);
if (Wire.available() >= 3) low; // Convert to Celsius // Formula: Temp = (rawValue * 0.02) - 273.15 return (rawTemp * 0.02) - 273.15;This code snippet illustrates reading the object temperature
return NAN;
If the library loads but never responds (always NACK):
Contrary to popular belief, Proteus does not automatically simulate every sensor on the market. The MLX90614 Proteus Library is a third-party SPICE model combined with a graphical component. It mimics the electrical behavior of the real sensor.