利用我们的解决方案释放温度数据的力量,实现数据驱动的决策,推动您的成功。
A
A
硬件概览
它是如何工作的?
Thermo 7 Click基于来自Microchip的MCP9800,这是一款具有2线接口的高精度温度传感器IC。Click board™本身的组件数量相当少,因为大部分的测量电路已经集成在MCP9800传感器上。I2C/SMBus兼容的串行接口线路,以及ALERT引脚,它也以开漏配置工作,由板载电阻上拉。2线路被路由到mikroBUS™的相应I2C线路(SCK和SDA),而ALERT引脚被路由到mikroBUS™的INT引脚。传感器IC使用I2C/SMBus兼容的通信接口。有四个寄存器,用于设置温度限制、中断事件的温度滞后、存储所有工作参数的配置寄存器,以及保存采样温度数据的只读寄存器。有关所有寄存器的更多信息可在MCP9800数据手册中找到。然而,提供的库包含了简化Thermo 7 Click使用的函数。所包含的应用示例演示了它们的功能,并可用作自定义设计的参考。热传感器的模拟信号由可选择分辨率为9、10、11和12位的σ-Δ ADC转换器进行采样。采样分辨率影响温度步进大小,以及完成
转换所需的时间。步进大小在9位采样时为0.5°C,转换时间为30ms,而在12位分辨率时为0.0625°C,转换时间为240ms。可选择的分辨率允许根据应用需求在分辨率和转换时间之间进行折衷。ALERT引脚用于在主机MCU上触发中断事件。该引脚具有可编程极性:它可以设置为被断言为高逻辑电平或低逻辑电平。由于Click board™配备了上拉电阻,建议将极性设置为所断言的状态将引脚拉到低逻辑电平。采用特殊机制来减少错误触发ALERT。该机制包括排队在超出温度限制的周期中。如前所述,ALERT引脚被路由到mikroBUS™的INT引脚。ALERT引脚可以设置为工作在两种不同模式下:比较器模式和中断模式。在比较器模式下工作时,每当超出温度限制时,此引脚将被触发。在温度降至滞后水平以下之前,ALERT引脚保持断言。这两个值在各自的温度寄存器中设置(限制和滞后)。这种模式对于类似恒温器的应用很有用:它可以用于在过热时关闭系统
或在温度足够低时关闭冷却风扇。如果设置为工作在中断模式,则在超出温度限制后,ALERT引脚将保持断言,直到读取任何内部寄存器。当温度降至滞后水平以下时,ALERT引脚将再次被断言,等待再次读取内部寄存器。这种模式用于在主机MCU上触发中断,当生成中断事件时,应读取传感器。该设备可以设置为工作在几种不同的电源模式下。它可以被设置为连续采样温度测量,可以被设置为工作在单次模式下,并且可以被设置为保持在关机模式下。关机模式消耗最少的电力,保持所有内部部分但通信部分未上电。单次模式允许设备保持在关机模式下,在需要时运行单个转换周期,然后恢复到关机模式。这可以降低功耗。Click board™本身的设计使得来自其他组件的热辐射对传感器的环境温度读数的影响减小。标记为VCC SEL的板载SMD跳线允许选择与3.3V和5V MCU进行接口。
功能概述
开发板
Flip&Click PIC32MZ 是一款紧凑型开发板,设计为一套完整的解决方案,它将 Click 板™的灵活性带给您喜爱的微控制器,使其成为实现您想法的完美入门套件。它配备了一款板载 32 位 PIC32MZ 微控制器,Microchip 的 PIC32MZ2048EFH100,四个 mikroBUS™ 插槽用于 Click 板™连接,两个 USB 连接器,LED 指示灯,按钮,调试器/程序员连接器,以及两个与 Arduino-UNO 引脚兼容的头部。得益于创
新的制造技术,它允许您快速构建具有独特功能和特性的小工具。Flip&Click PIC32MZ 开发套件的每个部分都包含了使同一板块运行最高效的必要组件。此外,还可以选择 Flip&Click PIC32MZ 的编程方式,使用 chipKIT 引导程序(Arduino 风格的开发环境)或我们的 USB HID 引导程序,使用 mikroC、mikroBasic 和 mikroPascal for PIC32。该套件包括一个通过 USB 类型-C(USB-C)连接器的干净且调
节过的电源供应模块。所有 mikroBUS™ 本身支持的 通信方法都在这块板上,包括已经建立良好的 mikroBUS™ 插槽、用户可配置的按钮和 LED 指示灯。Flip&Click PIC32MZ 开发套件允许您在几分钟内创建新的应用程序。它由 Mikroe 软件工具原生支持,得益于大量不同的 Click 板™(超过一千块板),其数量每天都在增长,它涵盖了原型制作的许多方面。
微控制器概述
MCU卡片 / MCU

建筑
PIC32
MCU 内存 (KB)
2048
硅供应商
Microchip
引脚数
100
RAM (字节)
524288
使用的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 7 Click驱动程序的API。
关键函数:
thermo7_get_hysteresis_temperature
- 获取滞后温度的函数。thermo7_set_limit_temperature
- 设置限制温度的函数。thermo7_get_interrupt
- 读取中断引脚状态的函数。
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* \file
* \brief Thermo7 Click example
*
* # Description
* This application reads ambient temperature.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initializes device.
*
* ## Application Task
* Reads ambient temperature and logs to USBUART every 1 seconds.
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "thermo7.h"
// ------------------------------------------------------------------ VARIABLES
static thermo7_t thermo7;
static log_t logger;
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
thermo7_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.
thermo7_cfg_setup( &cfg );
THERMO7_MAP_MIKROBUS( cfg, MIKROBUS_1 );
thermo7_init( &thermo7, &cfg );
thermo7_set_configuration( &thermo7, THERMO7_CONFIG_COMPARATOR_MODE | THERMO7_CONFIG_ALERT_POLARITY_ACTIVE_HIGH );
thermo7_set_resolution( &thermo7, THERMO7_CONFIG_ADC_RESOLUTION_12bit );
}
void application_task ( void )
{
float ambient_temperature;
ambient_temperature = thermo7_read_ambient_temperature( &thermo7 );
log_printf( &logger, " Ambient temperature : %f C\r\n", ambient_temperature
);
Delay_ms( 1000 );
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
// ------------------------------------------------------------------------ END