中级
30 分钟

使用MTCH105和ATmega328P提供更直观和无缝的控制体验

用电容触控释放您的创造力

Cap Extend 3 Click with Arduino UNO Rev3

已发布 6月 24, 2024

点击板

Cap Extend 3 Click

开发板

Arduino UNO Rev3

编译器

NECTO Studio

微控制器单元

ATmega328P

旨在彻底改变用户界面,我们的电容触摸按钮为传统的机械按钮提供了时尚、现代的替代方案,提升了您解决方案的整体设计美感。

A

A

硬件概览

它是如何工作的?

Cap Extend 3 Click基于Microchip的MTCH105,这是一个带有主动守卫功能的五通道接近/触摸控制器。MTCH105 IC使用先进的扫描优化算法来主动地抑制信号中的噪声。良好的信噪比是实现可靠电容触摸检测的重要先决条件。良好的信噪比、自动环境补偿、低功耗和简单的I/O接口使得该IC成为构建Cap Extend 3 Click的完美解决方案,其中包括四个可靠的触摸传感器。Cap Extend 3 click的表面受到丙烯酸玻璃的保护。如果在与IC的输入引脚(MTI0到MTI4)连接的传感器之一上检测到触摸事件,则相应通道输出引脚(MTO0到MTO4)的状态将被拉低至逻辑低电平,表示该通道已被激活 - 在特定通道上检测到触摸。这也将由激活的通道相关的LED指示。输出引脚采用开漏配置工作,因此由板载电阻上拉至高电平。尽管IC具有五个通道,但仅实现了四个按钮,因为其中一个通道与主动守卫功能复用。当GC引脚被拉到GND电平时,它将把MTI2/GUARD引脚设置为守卫模式,该模式可以吸收传感器周围的噪声。连接

到此引脚的PCB走线环绕所有传感器,提供主动守卫并显着增强信噪比。值得注意的是,当激活主动守卫时,与MTO2引脚的LED将点亮,指示守卫功能已启用。一个小型的板载SMD跳线,标记为JP2,可以留空,将守卫引脚与环绕传感器的PCB走线网络断开连接。当使用外部传感器或不需要主动守卫功能时,此选项很有用,以便MTI2/MTO2可以用作额外的外部电容触摸传感器。Cap Extend 3 click还允许通过标记为J1的连接器连接外部传感器。MTCH105允许使用各种大小和形状的传感器以及由几种不同材料制成的传感器 - 印刷在塑料薄膜上的碳印刷品、氧化铟锡(ITO)垫、电线/电缆等。外部传感器连接器允许将Cap Extend 3的触摸功能扩展到click本身之外。所有五个通道都被引出到此连接器,因此用户可以决定其首选的传感器配置以及是否使用主动守卫功能或将其替换为另一个传感器。传感器垫的灵敏度可以通过连接在VCC和GND之间的板载电位器进行调整。电位器充当电压分压器,其电刷连接到MTCH105的MTSA引脚。提

高此引脚的电压级别将导致MTCH105输入的灵敏度降低。标记为MODE SEL的板载SMD跳线用于选择设备的工作模式。该设备可以工作在正常模式或低功率模式下。在正常模式下工作时,输入的突发扫描将持续不断地进行,提供最短的检测时间。当设置为在低功率模式下工作时,设备将在每个突发扫描间隔之间具有256ms的延迟。这将大大降低功耗,但在这种情况下,触摸检测可能需要更长的时间。当通过将MODE SEL跳线切换到标记为HIGH的位置来设置MTPM引脚为VCC电平时,设备将正常工作。当将MODE SEL跳线设置为标记为LOW的位置时,MTPM引脚将被设置为GND电平,并且设备将在低功率模式下工作。该设备还具有超时复位功能。当通道保持激活状态达到10秒时,将复位并重新校准相应通道。MTCH105的所有五个通道输出引脚都被引出到mikroBUS™,因此MCU可以轻松读取和检测它们的状态。通道被引出到mikroBUS™的AN、PWM、INT、RST和CS引脚。

Cap Extend 3 Click hardware overview image

功能概述

开发板

Arduino UNO 是围绕 ATmega328P 芯片构建的多功能微控制器板。它为各种项目提供了广泛的连接选项,具有 14 个数字输入/输出引脚,其中六个支持 PWM 输出,以及六个模拟输入。其核心组件包括一个 16MHz 的陶瓷谐振器、一个 USB 连接器、一个电

源插孔、一个 ICSP 头和一个复位按钮,提供了为板 子供电和编程所需的一切。UNO 可以通过 USB 连接到计算机,也可以通过 AC-to-DC 适配器或电池供电。作为第一个 USB Arduino 板,它成为 Arduino 平台的基准,"Uno" 符号化其作为系列首款产品的地

位。这个名称选择,意为意大利语中的 "一",是为了 纪念 Arduino Software(IDE)1.0 的推出。最初与 Arduino Software(IDE)版本1.0 同时推出,Uno 自此成为后续 Arduino 发布的基础模型,体现了该平台的演进。

Arduino UNO Rev3 double side image

微控制器概述 

MCU卡片 / MCU

default

建筑

AVR

MCU 内存 (KB)

32

硅供应商

Microchip

引脚数

28

RAM (字节)

2048

你完善了我!

配件

Click Shield for Arduino UNO 具有两个专有的 mikroBUS™ 插座,使所有 Click board™ 设备能够轻松与 Arduino UNO 板进行接口连接。Arduino UNO 是一款基于 ATmega328P 的微控制器开发板,为用户提供了一种经济实惠且灵活的方式来测试新概念并构建基于 ATmega328P 微控制器的原型系统,结合了性能、功耗和功能的多种配置选择。Arduino UNO 具有 14 个数字输入/输出引脚(其中 6 个可用作 PWM 输出)、6 个模拟输入、16 MHz 陶瓷谐振器(CSTCE16M0V53-R0)、USB 接口、电源插座、ICSP 头和复位按钮。大多数 ATmega328P 微控制器的引脚都连接到开发板左右两侧的 IO 引脚,然后再连接到两个 mikroBUS™ 插座。这款 Click Shield 还配备了多个开关,可执行各种功能,例如选择 mikroBUS™ 插座上模拟信号的逻辑电平,以及选择 mikroBUS™ 插座本身的逻辑电压电平。此外,用户还可以通过现有的双向电平转换电压转换器使用任何 Click board™,无论 Click board™ 运行在 3.3V 还是 5V 逻辑电压电平。一旦将 Arduino UNO 板与 Click Shield for Arduino UNO 连接,用户即可访问数百种 Click board™,并兼容 3.3V 或 5V 逻辑电压电平的设备。

Click Shield for Arduino UNO accessories 1 image

使用的MCU引脚

mikroBUS™映射器

Sensor 0 State
PC0
AN
Sensor 1 State
PD2
RST
Sensor 2 State
PB2
CS
NC
NC
SCK
NC
NC
MISO
NC
NC
MOSI
Power Supply
3.3V
3.3V
Ground
GND
GND
Sensor 3 State
PD6
PWM
Sensor 4 State
PC3
INT
NC
NC
TX
NC
NC
RX
NC
NC
SCL
NC
NC
SDA
NC
NC
5V
Ground
GND
GND
1

“仔细看看!”

Click board™ 原理图

Cap Extend 3 Click Schematic schematic

一步一步来

项目组装

Click Shield for Arduino UNO front image hardware assembly

从选择您的开发板和Click板™开始。以Arduino UNO Rev3作为您的开发板开始。

Click Shield for Arduino UNO front image hardware assembly
Arduino UNO Rev3 front image hardware assembly
Charger 27 Click front image hardware assembly
Prog-cut hardware assembly
Arduino UNO Rev3 Access MB 1 - upright/background hardware assembly
Necto image step 2 hardware assembly
Necto image step 3 hardware assembly
Necto image step 4 hardware assembly
Necto image step 5 hardware assembly
Necto image step 6 hardware assembly
Arduino UNO MCU Step hardware assembly
Necto No Display image step 8 hardware assembly
Necto image step 9 hardware assembly
Necto image step 10 hardware assembly
Debug Image Necto Step hardware assembly

实时跟踪您的结果

应用程序输出

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”替换为要显示的参数。

软件支持

库描述

这个库包含 Cap Extend 3 Click 驱动程序的 API。

关键函数:

  • capextend3_Touch_0 - 该函数读取 AN 引脚的状态。

  • capextend3_Touch_1 - 该函数读取 RST 引脚的状态。

  • capextend3_Touch_2 - 该函数读取 CS 引脚的状态。

开源

代码示例

完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio 应用程序代码也可以在MIKROE的GitHub账户中找到。

/*!
 * \file 
 * \brief Cap Extend 3 Click example
 * 
 * # Description
 * This application features four capacitive sensor pads, 
 * that can sense touch through a variety of different materials.
 *
 * The demo application is composed of two sections :
 * 
 * ## Application Init 
 * Initialize GPIO Driver
 * 
 * ## Application Task  
 * Depending on which button is touched the usb uart
 * will show number of that button.
 * 
 * \author MikroE Team
 *
 */
// ------------------------------------------------------------------- INCLUDES

#include "board.h"
#include "log.h"
#include "capextend3.h"

// ------------------------------------------------------------------ VARIABLES

static capextend3_t capextend3;
static log_t logger;

// ------------------------------------------------------ APPLICATION FUNCTIONS

void application_init ( void )
{
    log_cfg_t log_cfg;
    capextend3_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.
    capextend3_cfg_setup( &cfg );
    CAPEXTEND3_MAP_MIKROBUS( cfg, MIKROBUS_1 );
    capextend3_init( &capextend3, &cfg );
}

void application_task ( void )
{
    uint8_t touch_0;
    uint8_t touch_1;
    uint8_t touch_2;
    uint8_t touch_3;
    uint8_t touch_4;

    touch_0 = capextend3_touch_0( &capextend3 );
    touch_1 = capextend3_touch_1( &capextend3 );
    touch_2 = capextend3_touch_2( &capextend3 );
    touch_3 = capextend3_touch_3( &capextend3 );
    touch_4 = capextend3_touch_4( &capextend3 );
    
    if ( touch_2 == 0 )
    {
       log_printf( &logger, "Active Guard\r\n" ); 
    }
    if ( touch_0 == 0 )
    {
       log_printf( &logger, "Touch 0 \r\n" ); 
    }
    if ( touch_1 == 0 )
    {
       log_printf( &logger, "Touch 1 \r\n" ); 
    }
    if ( touch_3 == 0 )
    {
       log_printf( &logger, "Touch 3 \r\n" ); 
    }
    if ( touch_4 == 0 )
    {
       log_printf( &logger, "Touch 4 \r\n" ); 
    }
    if ( ( touch_0 && touch_1 && touch_2 && touch_3 && touch_4 ) == 0 ) 
    {
        log_printf( &logger, "------------------------\r\n" ); 
    }
    Delay_ms( 100 );
}

void main ( void )
{
    application_init( );

    for ( ; ; )
    {
        application_task( );
    }
}


// ------------------------------------------------------------------------ END

额外支持

资源

喜欢这个项目吗?

'购买此套件' 按钮会直接带您进入购物车,您可以在购物车中轻松添加或移除产品。