How does it work?
IrThermo Click 3.3V is based on the MLX90614, a single and dual-zone infrared thermometer from Melexis. This sensor is an IR sensor of a thermopile character. A thermopile sensor is a serially connected thermocouple array with hot junctions on the heat-absorbing membrane. The cold junctions are located on a cold base, providing the reference point for generating the voltage. Due to the low-temperature capacity of the membrane, it will react to the heat radiation, generating voltage via the thermoelectric effect. The ASSP circuitry of the MLX90614 sensor processes the voltage, allowing an accuracy of ±0.5˚C. The MLX90614 sensor is factory calibrated in a wide temperature range: -40°C to 125°C for sensor temperature and -70°C to 380°C for object temperature. The ASSP circuitry also provides advanced interfacing options for the MCU, with the CRC error checking.
The MLX90614 is equipped with a portion of EEPROM, which stores various config parameters, calibration data, and the chip ID address. Changing the values in the EEPROM will only take effect once the device is restarted.
IrThermo Click 3.3V can use the SMBus to communicate with the host MCU using I2C lines of the mikroBUS™ socket. In addition, you can use the 10-bit PWM for data output to the host MCU. The selection can be made over the SELECT MODE jumper, where the I2C is selected by default. For this Click board™ to work properly, both jumpers should be set to appropriate positions.
This Click board™ can be operated only with a 3.3V logic voltage level. The board must perform appropriate logic voltage level conversion before using MCUs with different logic levels. Also, it comes equipped with a library containing functions and an example code that can be used as a reference for further development.
Specifications
Type
Temperature & humidity
Applications
Can be used for the development of high-precision non-contact temperature measurement devices, thermal comfort sensors for mobile air-conditioning control systems, windshield defogging, home appliances, movement detection systems, and more
On-board modules
MLX90614 – single and dual-zone infrared thermometer from Melexis
Key Features
Non-contact temperature measurement, sensor and object temperature measurement, movement detection, 17-bit ADC powerful DSP unit, and 10-bit PWM, high accuracy, high measurement resolution, sleep mode for reduced power consumption, automotive grade, high (medical) accuracy calibration, and more
Interface
I2C,PWM,UART
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on IrThermo click 3.3V corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED indicator |
J2A-J3A | SELECT MODE | Right | Communication Interface Selection PWM/I2C: Left position PWM, Right position I2C |
IrThermo Click 3.3V electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | – | 5 | – | V |
Temperature Measurement Range | -20 | – | 85 | °C |
Accuracy | – | ±0.5 | – | °C |
ADC Resolution | – | – | 17 | bit |
Software support
We provide a library for IrThermo click 3.3V on our Libstock page, as well as a demo application (example), developed using MikroElektronika compilers and mikroSDK. The provided click library is mikroSDK standard compliant. The demo application can run on all the main MikroElektronika development boards.
Library Description
Key functions:
float irthrm3v3_getTambient()
- Returns ambient temperature value in Celsius.float irthrm3v3_getTobject()
- Returns object temperature value in Celsius.
Examples Description
The application is composed of three sections:
- System Initialization - Initialization of the I2C and UART modules.
- Application Initialization - Initialization of the IrThermo 3V3 Driver
- Application Task – Reading Ambient Temperature and displaying the value periodically.
void applicationTask() { measuredTemperature = irthrm3v3_getTambient(); FloatToStr(measuredTemperature,text); mikrobus_logWrite("Ambient Temperature: ",_LOG_TEXT); mikrobus_logWrite(text,_LOG_LINE); Delay_ms(1000); }
The full application code, and ready to use projects can be found on our Libstock page.
Other mikroE Libraries used in the example:
- I2C
- UART
- Conversions
Additional notes and information
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.