Thermo 8 Click-Platine
Thermo 8 Click-Platine
Overview
Das Thermo 8 Click Board™ ist ein sehr genaues digitales Thermometer mit einer sehr hohen typischen Messgenauigkeit von ±0,25 °C und hervorragender Datenwiederholbarkeit mit Drift im Bereich von ±0,0625 °C. Neben der Temperaturmessung bietet dieses Click Board™ eine Reihe sehr nützlicher Funktionen, wie z. B. die Thermostatfunktion, ein Interrupt-Ereignis und eine Warnfunktion bei kritischer Temperatur. Die programmierbaren Schwellenwerte ermöglichen dem Benutzer das Festlegen von Auslösebedingungen und die Anpassung des Click Board™ an jede Art von thermischer Messanwendung.
Das Thermo 8 Click Board™ kann einen großen Temperaturbereich von -20 °C bis +100 °C messen.
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, the Thermo 8 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 The Thermo 8 Click Board™ Work?
The Thermo 8 Click Board™ 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 the Thermo 8 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 Thermo 8 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 |
Compatibility | mikroBUS |
Click board size | M (42.9 x 25.4 mm) |
Input Voltage | 3.3V or 5V |
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 | Alert OUT | |
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 | Power Supply |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
ONBOARD SETTINGS AND INDICATORS
Label | Name | Default | Description |
---|---|---|---|
JP2 | VCC SEL | Left | Power supply voltage selection: left position 3V3, right position 5V |
LD1 | PWR | - | Power LED indicator |
AO-A2 | ADDR SEL | - | Network status LED indicator |
Software Support
We provide a library for the Thermo 8 Click Board™ 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.
Example 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 a 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.
Software Support
We provide a library for the Thermo 8 Click Board™ 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.
Example 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 a 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.
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.