我们的温度测量解决方案提供无与伦比的精确度,确保您的流程顺畅高效运行。
A
A
硬件概览
它是如何工作的?
Thermo 8 Click基于Microchip的MCP9808数字温度传感器,具有±0.5°C的最大精度。MCP9808使用带隙类型温度传感器,通过Δ-Σ A/D转换器转换为数字值,通过I2C接口提供给用户。用户可以选择测量的分辨率,范围从±0.5°C到±0.0625°C。分辨率由内部采样平均确定,因此更高的分辨率会导致更长的转换时间。例如,分辨率为±0.0625°C的转换时间为250ms,而分辨率为±0.5°C的转换时间仅为30ms。转换完成后,温度存储到输出寄存器。该寄存器是双缓冲的,这意味着在主控微控制器(MCU)读取当前值时,可以在后台写入新数据。热数据以2's补码格式存储为13位值。除了热数据,该寄存器还包含指示热警报条件的位。MCP9808的一个关键功能是其广泛的警报引擎,有三种可能的警报条件。MCP9808的ALERT引脚连接到mikroBUS™的INT引脚,在此Click板™上标记为ALE。该引脚可以编程为高电平或低电
平。然而,Click板™使用上拉电阻将其空闲状态预定为高电平。根据应用的不同,该引脚可以设置为典型的中断引脚或比较器。当设置为中断时,该引脚将被锁存,直到主控MCU设置中断清除位(CONFIG寄存器的第5位,更多信息见MCP9808数据表)。当设置为比较器时,该引脚仅在存在警报条件时被断言。一旦温度在编程限制内,该引脚将被取消断言。中断模式在MCU用于控制某些过程时很有用,需要确认操作,而比较器模式可以用于直接控制设备,例如电子设备或PC外围设备中的冷却风扇。警报阈值可以由用户编程。用户可以在专用寄存器中输入阈值,包括符号。该值应以2's补码格式输入。还有一个专用寄存器,可以输入热滞后值,减少温度接近阈值时的错误报告概率。滞后范围可以在0°C到+6°C之间,以四个离散步骤设置。除了阈值寄存器,还有一个寄存器包含用于触发特殊警报模式的值:关键温度
模式。只要存在关键温度条件,该模式将强制设备在比较器模式下工作。相同的滞后值应用于此阈值,减少错误报告的概率。有关警报模式的更多详细信息,请参阅MCP9808的数据表。然而,Click板™配备了符合mikroSDK的函数库,通过封装MCP9808 IC所需的所有转换和初始化例程,简化了固件开发。MCP9808还支持关机模式,通过关闭传感器减少功耗。然而,最后一次转换仍可在输出寄存器中使用。即使在进入关机模式时,警报引脚状态也不受影响。设备的I2C从地址可以通过切换标记为ADDR SEL的一组SMD跳线选择。每个跳线将适当的LSB设置为逻辑0或逻辑1,确定最终的I2C从地址。电源电压也可以通过标记为VCC SEL的SMD跳线在3.3V和5V之间设置。这也将设置Click板™的逻辑电压水平。
功能概述
开发板
Clicker 2 for Kinetis 是一款紧凑型入门开发板,它将 Click 板™的灵活性带给您喜爱的微控制器,使其成为实现您想法的完美入门套件。它配备了一款板载 32 位 ARM Cortex-M4F 微控制器,NXP 半导体公司的 MK64FN1M0VDC12,两个 mikroBUS™ 插槽用于 Click 板™连接,一个 USB 连接器,LED 指示灯,按钮,一个 JTAG 程序员连接器以及两个 26 针头用于与外部电子设备的接口。其紧凑的设计和清晰、易识别的丝网标记让您能够迅速构建具有独特功能和特性
的小工具。Clicker 2 for Kinetis 开发套件的每个部分 都包含了使同一板块运行最高效的必要组件。除了可以选择 Clicker 2 for Kinetis 的编程方式,使用 USB HID mikroBootloader 或外部 mikroProg 连接器进行 Kinetis 编程外,Clicker 2 板还包括一个干净且调节过的开发套件电源供应模块。它提供了两种供电方式;通过 USB Micro-B 电缆,其中板载电压调节器为板上每个组件提供适当的电压水平,或使用锂聚合物 电池通过板载电池连接器供电。所有 mikroBUS™ 本
身支持的通信方法都在这块板上,包括已经建立良好的 mikroBUS™ 插槽、重置按钮和几个用户可配置的按钮及 LED 指示灯。Clicker 2 for Kinetis 是 Mikroe 生态系统的一个组成部分,允许您在几分钟内创建新的应用程序。它由 Mikroe 软件工具原生支持,得益于大量不同的 Click 板™(超过一千块板),其数量每天都在增长,它涵盖了原型制作的许多方面。
微控制器概述
MCU卡片 / MCU

建筑
ARM Cortex-M4
MCU 内存 (KB)
1024
硅供应商
NXP
引脚数
121
RAM (字节)
262144
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
实时跟踪您的结果
应用程序输出
1. 应用程序输出 - 在调试模式下,“应用程序输出”窗口支持实时数据监控,直接提供执行结果的可视化。请按照提供的教程正确配置环境,以确保数据正确显示。

2. UART 终端 - 使用UART Terminal通过USB to UART converter监视数据传输,实现Click board™与开发系统之间的直接通信。请根据项目需求配置波特率和其他串行设置,以确保正常运行。有关分步设置说明,请参考提供的教程。

3. Plot 输出 - Plot功能提供了一种强大的方式来可视化实时传感器数据,使趋势分析、调试和多个数据点的对比变得更加直观。要正确设置,请按照提供的教程,其中包含使用Plot功能显示Click board™读数的分步示例。在代码中使用Plot功能时,请使用以下函数:plot(insert_graph_name, variable_name);。这是一个通用格式,用户需要将“insert_graph_name”替换为实际图表名称,并将“variable_name”替换为要显示的参数。

软件支持
库描述
该库包含用于Thermo 8 Click驱动程序的API。
关键功能:
thermo8_get_temperature
- 此功能返回温度值(单位:摄氏度)thermo8_set_resolution
- 此功能根据传递的常量设置温度转换的分辨率thermo8_limit_set
- 此功能设置温度报警的下限、上限和临界警报水平
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* \file
* \brief Thermo8 Click example
*
* # Description
* This application measures temperature.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initialize device.
*
* ## 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).
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "thermo8.h"
// ------------------------------------------------------------------ VARIABLES
static thermo8_t thermo8;
static log_t logger;
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
thermo8_cfg_t cfg;
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, "---- Application Init ----" );
// Click initialization.
thermo8_cfg_setup( &cfg );
THERMO8_MAP_MIKROBUS( cfg, MIKROBUS_1 );
thermo8_init( &thermo8, &cfg );
Delay_ms( 100 );
thermo8_default_cfg( &thermo8 );
Delay_ms( 2000 );
}
void application_task ( void )
{
float t_data;
char alert;
char alert_on;
alert = thermo8_ale_get( &thermo8 );
if ( alert == 0 )
{
t_data = thermo8_get_temperature( &thermo8 );
alert_on = thermo8_get_alert_stat( &thermo8 );
}
if ( alert_on & THERMO8_TLOWER_REACHED )
{
log_printf( &logger, "Temperature under the low limit: %.2f C \r\n",
t_data );
}
if ( alert_on & THERMO8_TUPPER_REACHED )
{
log_printf( &logger, "Temperature over the high limit: %.2f C \r\n",
t_data );
}
Delay_ms( 2000 );
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
// ------------------------------------------------------------------------ END