Thermo 8 click
PID: MIKROE‐3290
Weight: 24 g
Thermo 8 click is a very accurate thermometer Click board™, with a very
high typical measurement accuracy of ±0.25°C, and great data repeatability,
with drift in the range of ±0.0625°C. Besides measuring the temperature,
this Click board™ offers a set of very useful features, such as the thermostat
function, interrupt event and critical temperature alert function. The
programmable thresholds allow the user to set trigger conditions, adapting
the Click board™ to any type of thermal measurement application. This Click
board™ can measure a wide range of temperatures, from -20 °C, up to
+100 °C.
The Click board™ is supported by a mikroSDK compliant library, which
includes functions that simplify software development. The Click board™
comes as a fully tested product, ready to be used on a system equipped with
a mikroBUS™ socket.
Due to its high precision and flexible alerting possibilities, programmable
thresholds, threshold hysteresis that prevents false alerts, and a dedicated
programmable alert pin with the user selectable logic status, this Click
board™ represents an ideal development solution for a variety of
applications based on the accurate temperature measurement such as the
PC peripherals cooling solutions, air conditioners, different types of freezers
and refrigerators, battery operated portable ambient temperature
thermometers, and similar.
How does it work?
Thermo 8 click is based on the MCP9808, a digital temperature sensor with
±0.5 °C maximum accuracy, from Microchip. The MCP9808 uses a bandgap
type temperature sensor, which is converted by a delta-sigma A/D converter
to a digital value, available via the I2C interface. The user has the ability to
select the resolution of the measurement, ranging from ±0.5°C, down to
±0.0625°C. The resolution is determined by the internal sample averaging.
Therefore, a higher resolution results in longer conversion times. For
example, the conversion time for the resolution of ±0.0625 °C is 250ms,
while the conversion time for the resolution of ±0.5 °C is only 30ms.
The temperature is stored to an output register after the conversion is done.
This register is double-buffered, which means that the new data can be
written in the background, while the host microcontroller (MCU) performs a
reading of the current value. The thermal data is stored as a 13-bit value, in
2's complement format. Along with the thermal data, this register also
contains bits that indicate a thermal alert condition. There are three possible
alert conditions. The extensive alerting engine is one of the key features of
the MCP9808.
The ALERT pin of the MCP9808 is routed to the INT pin of the mikroBUS™,
which is labeled as ALE on this Click board™. It can be programmed to be
asserted to a HIGH or to a LOW logic level. However, the Click board™ uses
the pull-up resistor to predetermine its idle state to a logic HIGH level.
Depending on the application, this pin can be set to operate as a typical
interrupt pin, or as a comparator. When set to operate as the interrupt, this
pin will be latched until the host MCU sets the Interrupt Clear bit (bit 5 of the
CONFIG register, more information in the MCP9808 datasheet).
When set to operate as the comparator, the ALERT pin will be asserted only
while the alert condition exists. As soon as the temperature falls within the
programmed limits, the pin will be de-asserted. While the interrupt mode is
useful when an MCU is used to control some process, having to acknowledge
the action, the comparator mode can be used to directly control a device,
such as a cooling fan in electronic equipment, or PC peripheral.
The alert thresholds can be programmed by the user. There are dedicated
registers, where the user can enter the threshold value, along with the sign.
The value should be entered in 2's complement format. There is also a
dedicated register where the thermal hysteresis can be entered, reducing
the probability of false reporting when the temperature drifts near the
threshold value. The hysteresis can be set in the range from 0 °C up to +6
°C, in four discrete steps.
Besides the threshold registers, there is another register which contains the
value used to trigger a special alert mode: the critical temperature mode.
This mode will force the device to work in the comparator mode, as long as
the critical temperature condition exists. The same hysteresis value is
applied to this threshold, reducing the probability of false reports. For more
details about the alert modes, please refer to the datasheet of the
MCP9808s. However, the Click board™ comes with the mikroSDK compliant
library of functions, which simplify the firmware development by
encapsulating all the conversion and initialization routines required by the
MCP9808 IC.
The MCP9808 also supports a SHUTDOWN mode, which reduces the power
consumption by turning off the sensor. However, the last conversion is still
available in the output register. Even the alert pin state remains unaffected
when the SHUTDOWN mode is engaged.
The I2C slave address of the device can be selected by switching a group of
SMD jumpers, labeled as ADDR SEL. Each jumper will set the appropriate
LSB of the device to either logic 0 or logic 1, determining the final I2C slave
address. The power supply voltage can also be set by an SMD jumper
labeled as VCC SEL, between 3.3V and 5V. This will also set the logic voltage
level of the Click board™.
Specifications
Type
Temperature / Humidity
Applications
An ideal development solution for a variety of
applications based on the accurate temperature
measurement including PC peripheral cooling solutions,
air conditioners, various types of freezers and
refrigerators, battery operated portable ambient
temperature thermometers, and similar
On-board
modules
MCP9808, a digital temperature sensor with ±0.5 °C
maximum accuracy, from Microchip
Key Features
A very high measurement accuracy and repeatability,
programmable thresholds and hysteresis, a dedicated
ALERT pin with a programmable function, selectable
resolution, and more
Interface
I2C
Input
Voltage
3.3V or 5V
Click board
size
M (42.9 x 25.4 mm)
Pinout diagram
This table shows how the pinout on Thermo 8 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
ALE
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
Alert OUT
Power Supply
Ground
Onboard settings and indicators
Label
Name
Default
Description
JP2
VCC SEL
Left
LD1
PWR
-
Power LED indicator
AOA2
ADDR SEL
-
Network status LED indicator
Power supply voltage selection: left
position 3V3, right position 5V
Software support
We provide a library for the Thermo 8 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
Library contains generic functions for working with the click board.
Key functions:
void thermo8_setResolution(uint8_t rCfg) - Function for setting the measurement
resolution.
uint8_t thermo8_aleGet() - Function for returning the state of the alert pin.
float thermo8_getTemperatue() - Function for reading the temperature.
Examples description
The application is composed of the three sections :
System Initialization - Initialize the GPIO, I2C and LOG structures.
Application Initialization - Initialize the communication interface and configure the click board.
Application Task - Wait for the interrupt pin to be triggered. When the measured temperature
breaches the upper or lower limit the temperature value as well as the status of the breach is is
shown on the serial port (UART).
void applicationTask()
{
float T_Data;
char text[15];
char alert;
char alertOn;
Delay_ms(2000);
alert = thermo8_aleGet();
if(alert == 0)
{
T_Data = thermo8_getTemperatue();
alertOn = thermo8_getAlertstat();
FloatToStr(T_Data,&text[0]);
text[5] = 0;
}
if(alertOn & THERMO8_TLOWER_REACHED)
{
mikrobus_logWrite("Temperature under the low limit: ",_LOG_TEXT);
mikrobus_logWrite(&text[0],_LOG_TEXT);
mikrobus_logWrite("°C",_LOG_LINE);
}
if(alertOn & THERMO8_TUPPER_REACHED)
{
mikrobus_logWrite("Temperature over the high limit: ",_LOG_TEXT);
mikrobus_logWrite(&text[0],_LOG_TEXT);
mikrobus_logWrite("°C",_LOG_LINE);
}
}
The full application code, and ready to use projects can be found on
our LibStock page.
Other mikroE Libraries used in the example:
Conversions Library
C_String Library
I2C Library
UART Library
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.
https://www.mikroe.com/thermo‐8‐click/1‐23‐19