IR Grid 3 click
PID: MIKROE‐3217
Weight: 24 g
IR Grid 3 click is a thermal imaging sensor. It has an array of 768 very
sensitive, factory calibrated IR elements (pixels), arranged in 32 rows of 24
pixels, each measuring an object temperature up to 300˚C within its local
Field of View (FOV). The MLX90640-BAA IR sensor used on this Click board™
has only four pins, and it is mounted inside of the industry standard TO39
package. The Click board™ comes as a fully tested and approved prototype,
making it a reliable device ready to use on the development board. The full
package also includes the mikroSDK™ software and a library with all the
functions.
The click board™ is suitable for a wide range of applications, including
thermal scanners, precise contactless thermal measurement, thermal leaks
in homes, industrial temperature control of moving parts, other types of
heated object localization, human presence, and similar applications that
require accurate contactless thermal measurement, or thermal imaging.
The sensor is equipped with 2Kbit of EEPROM for storing the compensation
and calibration parameters. The MLX90640-BAA IR sensor array IC has I2C
compatible digital interface, allowing it to be interfaced with a wide range of
different MCUs. The sensor used on this Click board™ offers a summed field
of view of 110°x75°. The sensor can output up to 64 frames per second
(FPS).
Due to the small number of external components it requires, as well as the
low pin count and widely used I2C digital interface, this sensor is an ideal
solution for building a range of thermal detection applications. IR Grid 3 click
can be used for a wide range of applications, including thermal scanners,
precise contactless thermal measurement, thermal leaks in homes, industrial
temperature control of moving parts, other types of heated object
localization, human presence, and similar applications that require accurate
contactless thermal measurement, or thermal imaging.
How does it work?
IR Grid 3 click is equipped with the MLX90640‐BAA, a 32x24 IR array sensor,
from Melexis. This sensor contains 8 Kbit EEPROM, used to store all the
compensation and calibration parameters, along with some editable user
parameters, such as the config registers, I2C address and similar. These
sensors can measure temperature relative to the cold junction temperature,
and for this reason, the MLX90640-BAA IR sensor incorporates a PTAT
(Proportional to Absolute Temperature) compensation sensor. The device
also contains the power supply voltage measurement unit, allow power
supply monitoring. It is recommended that the supply voltage stay as
accurate as possible, which is taken care of if used with the MikroElektronika
development systems. The IR sensor array, as well as the PTAT sensor
readings, are sampled by fast internal ADC and stored on the RAM, which
can be accessed via the I2C. The resolution of the ADC can be programmed
between 16bit and 19bit.
The MLX90640-BAA IR sensor used on this Click board™ has a Field of View
(FOV) of 110°x75°, with the IR sensing elements arranged in a 32x28 grid.
Each sensor measures the temperature in its individual FOV, allowing the
host MCU to build a thermal image or calculate the temperature at each spot
of the viewed scene. The measurement results are stored in the onboard
RAM. The entire RAM area is divided into two pages, with access patterns
controlled by the configuration registers (chess pattern, or interleaved
pattern). The configuration parameters are factory calibrated for chess
pattern access, yielding the most accurate results when using this mode.
The chess pattern mode is selected by default.
Two modes of operation are available: the device can continuously sample
data from the IR elements, with the programmed refresh rate (up to 64
frames per second), or it can take one frame, by sampling the selected
page. The status byte contains flags that indicate that the reading of a
specific page is done.
The configuration and control registers allow configuring of the working
parameters. These registers contain bits that control the behavior of the
sensor IC: the refresh rate, ADC resolution, measurement mode (continuous
or step mode), sleep mode, I2C mode (FM or FM+), etc. The data from the
EEPROM registers is copied after the POR cycle to the working RAM registers,
preparing the device to be instantly operated.
Besides the default working parameters, the EEPROM IC contains all the
compensating parameters, necessary for completing the accurate thermal
computations. A certain workflow has to be followed when operating this
sensor. The workflow includes calculation of the compensation parameters
that are stored in the EEPROM for each element. Those calculations include
ambient temperature calculation, pixel offset calculation, pixel to pixel
sensitivity difference compensation, object emissivity compensation, and
object temperature calculation. The datasheet of the MLX90640 IR sensor
contains these equations, which use the parameters stored in EEPROM.
However, this Click board™ is supported by the library, which contains
functions that simplify working with this sensor.
It should be noted that the sensor measures the IR emissivity of an object,
so it is to expect that some materials cannot be accurately measured by this
sensor due to their low emissivity, such as the aluminum. To better
understand the emissivity property of the materials, a person wearing
clothes, can be taken as an example: the measured temperature will reflect
the clothes temperature, rather than the body temperature itself, which is
known to be about 37 ˚C Care should be taken not to expose the Click
board™ to a cold or hot air flow, as it will cause false readings of the real
temperature. This sensor requires the temperature across the sensor
package to be constant.
The MLX90640-BAA IR sensor uses 3.3V for optimal results. While the power
for the IR sensor itself is taken from the 3.3V mikroBUS™ rail, in order to
support MCUs which use 5V compatible logic levels, the Click board™ comes
equipped with PCA9306, a bi-directional I2C level translator IC, produced by
Texas Instruments. This allows the logic voltage level to be selected by the
SMD jumper labeled as VCC SEL. Besides I2C bus lines, no additional lines of
the mikroBUS™ are used. I2C bus lines are routed to the respective pins of
the mikroBUS™.
Specifications
Type
Optical
Applications
It can be used for thermal scanners, precise contactless thermal
measurement, thermal leaks in homes, industrial temperature
control of moving parts, other types of heated object localization,
human presence, and other similar applications
On-board
modules
MLX90640, a 32x24 IR grid array sensor with EEPROM, and FOV
of 110°x75° from Melexis; PCA9306, a bi-directional I2C level
translator, from Texas Instruments
Key Features
768 factory calibrated sensors, capable of contactless measuring
of temperature up to 300˚C, integrated 8Kbit of EEPROM for
storing configuration and compensation parameters,
programmable refresh rate up to 64Hz, and more
Interface
I2C
Input
Voltage
3.3V,5V
Click board
size
M (42.9 x 25.4 mm)
Pinout diagram
This table shows how the pinout on IR Grid 3 click corresponds to the pinout
on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes
Pin
Pin
Notes
NC
1
AN
PWM
16
NC
NC
2
RST
INT
15
NC
NC
3
CS
RX
14
NC
NC
4
SCK
TX
13
NC
NC
5
MISO
SCL
12
SCL
I2C Clock
NC
6
MOSI
SDA
11
SDA
I2C Data
Power supply
3V3
7
3.3V
5V
10
5V
Ground
GND
8
GND
GND
9
GND
Power supply
Ground
Onboard jumpers and settings
Label
Name
Default
PWR
PWR
-
VCC
SEL
VCC SEL
Left
Description
Power LED indicator
Power supply voltage selection: left position 3.3V, right
position 5V
Software support
We provide a library for the IR Grid 3 Click on our LibStock page , as well as a
demo application (example), developed using MikroElektronika compilers. The
demo can run on all the main MikroElektronika development boards.
Library Description
The library contains all the necessary functions for successful work with IR
Grid 3 click.
Key functions:
void irgrid3_deviceConfiguration() - Functions for device configuration
void irgrid3_getPixelTemperature(float *Ta, float *pixelTemp) - Functions for reads
Ambient temperature and pixel temperature
Examples description
The application is composed of the three sections :
System Initialization - Initializes I2C module and USB UART for data logging
Application Initialization - Initializes driver init and IR Grid 3 module
Application Task - (code snippet) - Reads the temperature of all pixels and creates a pixel
temperature matrix that logs on usbuart every 500ms
void applicationTask()
{
irgrid3_getPixelTemperature(&Ta,&pixelTemp[0]);
mikrobus_logWrite("Ambient temperature: ",_LOG_TEXT);
FloatToStr(Ta,demoText);
mikrobus_logWrite(demoText,_LOG_LINE);
mikrobus_logWrite(" ", _LOG_LINE);
mikrobus_logWrite("‐‐‐ Pixel temperature matrix 32x24 ‐‐‐", _LOG_LINE);
for ( cnt = 0 ; cnt 0))
{
mikrobus_logWrite(" ", _LOG_LINE);
}
}
mikrobus_logWrite(" ", _LOG_LINE);
Delay_ms( 500 );
}
NOTE: The sensor needs about 4 minutes for calibration.
The full application code, and ready to use projects can be found on
our LibStock page.
Other mikroE Libraries used in the example:
I2C
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.
https://www.mikroe.com/ir‐grid‐3‐click 11‐20‐18