我们的触摸键解决方案通过提供一个敏感且优雅的触摸界面,彻底改变了用户交互方式,能够轻松响应您手指的轻轻一触。
A
A
硬件概览
它是如何工作的?
TouchKey 2 Click基于Microchip的ATtiny817,这是一个集成了触摸QTouch®控制器的设备。这个Click设计为在3.3V电源上运行。Click板上的四个LED指示键(触摸垫)被按下时的状态。TouchKey 2 Click通过UART接口与目标微控制器通信。您可以在任何条件下使用TouchKey 2 Click,不必担心因为湿气和水滴落在上面而发生问题。TouchKey 2 Click上的塑料覆盖层保护了板子免受湿气侵害。得益于这一特性,电子组件得到了安全保护。ATtiny817具有驱动屏蔽功能,以改善湿度和噪声处理性能。
Microchip的ATtiny817是一款使用8位AVR®处理器的微控制器,具有硬件乘法器,运行速度可达20MHz,最高可提供8KB Flash、512字节的SRAM和128字节的EEPROM。ATtiny817采用了Microchip的最新技术,具有灵活且低功耗的架构,包括事件系统和SleepWalking功能,精确的模拟特性和先进的外设。集成的QTouch®外设触摸控制器支持带有近距离感应和驱动屏蔽的电容式触摸界面。该模块支持在省电睡眠模式下触摸唤醒。即使在玻璃或纸层下,也可以切换电容按钮。有四个LED对应四个触摸键。如果按
下键A,则LED_A亮起,依此类推。此外,ATtiny817与主MCU之间还有UART通信。TouchKey 2 Click上的接头可用于设备编程。当前固件通过UART发送数据包(基于我们库中的演示示例)。通过固件修改,也可以实现SPI通信。这个Click板™只能在3.3V逻辑电压级别下操作。在使用不同逻辑电平的MCU之前,必须执行适当的逻辑电压级别转换。此外,它还配备了一个包含功能和示例代码的库,可用作进一步开发的参考。
功能概述
开发板
PIC18F57Q43 Curiosity Nano 评估套件是一款尖端的硬件平台,旨在评估 PIC18-Q43 系列内的微控制器。其设计的核心是包含了功能强大的 PIC18F57Q43 微控制器(MCU),提供先进的功能和稳健的性能。这个评估套件的关键特点包括一个黄 色用户 LED 和一个响应灵敏的机械用户开关,提供无
缝的交互和测试。为一个 32.768kHz 水晶振荡器足迹提供支持,确保精准的定时能力。套件内置的调试器拥有一个绿色电源和状态 LED,使编程和调试变得直观高效。此外,增强其实用性的还有虚拟串行端口 (CDC)和一个调试 GPIO 通道(DGI GPIO),提供广泛的连接选项。该套件通过 USB 供电,拥有由
MIC5353 LDO 调节器提供支持的可调目标电压功能,确保在 1.8V 至 5.1V 的输出电压范围内稳定运行,最大输出电流为 500mA,受环境温度和电压限制。
微控制器概述
MCU卡片 / MCU
建筑
PIC
MCU 内存 (KB)
128
硅供应商
Microchip
引脚数
48
RAM (字节)
8196
你完善了我!
配件
Curiosity Nano Base for Click boards 是一款多功能硬件扩展平台,专为简化 Curiosity Nano 套件与扩展板之间的集成而设计,特别针对符合 mikroBUS™ 标准的 Click 板和 Xplained Pro 扩展板。这款创新的基板(屏蔽板)提供了无缝的连接和扩展可能性,简化了实验和开发过程。主要特点包括从 Curiosity Nano 套件提供 USB 电源兼容性,以及为增强灵活性而提供的另一种外部电源输入选项。板载锂离子/锂聚合物充电器和管理电路确保电池供电应用的平稳运行,简化了使用和管理。此外,基板内置了一个固定的 3.3V 电源供应单元,专用于目标和 mikroBUS™ 电源轨,以及一个固定的 5.0V 升压转换器,专供 mikroBUS™ 插座的 5V 电源轨,为各种连接设备提供稳定的电力供应。
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
原理图
一步一步来
项目组装
实时跟踪您的结果
通过调试模式的应用程序输出
1. 一旦代码示例加载完成,按下 "DEBUG" 按钮将启动构建过程,并将其编程到创建的设置上,然后进入调试模式。
2. 编程完成后,IDE 中将出现一个带有各种操作按钮的标题。点击绿色的 "PLAY" 按钮开始读取通过 Click board™ 获得的结果。获得的结果将在 "Application Output" 标签中显示。
软件支持
库描述
这个库包含了TouchKey 2 Click驱动程序的API。
关键功能:
touchkey2_set_reset_pin
- 设置复位引脚功能touchkey2_clear_reset_pin
- 清除复位引脚功能touchkey2_target_reset
- 复位功能
开源
代码示例
这个示例可以在 NECTO Studio 中找到。欢迎下载代码,或者您也可以复制下面的代码。
/*!
* \file
* \brief Touchkey2 Click example
*
* # Description
* This application is touch controller.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initalizes device and makes an initial log.
*
* ## Application Task
* Checks if new data byte have received in rx buffer (ready for reading),
and if ready than reads one byte from rx buffer, that show if and what key is pressed.
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "touchkey2.h"
// ------------------------------------------------------------------ VARIABLES
static touchkey2_t touchkey2;
static log_t logger;
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
touchkey2_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.
touchkey2_cfg_setup( &cfg );
TOUCHKEY2_MAP_MIKROBUS( cfg, MIKROBUS_1 );
touchkey2_init( &touchkey2, &cfg );
}
void application_task ( void )
{
char tmp;
tmp = touchkey2_generic_single_read( &touchkey2 );
if( tmp == 0x00 )
{
log_printf( &logger, " Key released\r\n" );
log_printf( &logger, "------------------- \r\n" );
}
else if( tmp == 0x01 )
{
log_printf( &logger, " Key A pressed\r\n" );
log_printf( &logger, "------------------- \r\n" );
}
else if( tmp == 0x02 )
{
log_printf( &logger, " Key B pressed\r\n" );
log_printf( &logger, "------------------- \r\n" );
}
else if( tmp == 0x04 )
{
log_printf( &logger, " Key C pressed\r\n" );
log_printf( &logger, "------------------- \r\n" );
}
else if( tmp == 0x08 )
{
log_printf( &logger, " Key D pressed \r\n" );
log_printf( &logger, "------------------- \r\n" );
}
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
// ------------------------------------------------------------------------ END