当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于Atmel QTouch的ATmega48感应按键设计

摘要:提出一种基于Atmel公司的QTouch技术和ATmega48单片机的感应按键设计方案。硬件上,根据应用系统的要求,灵活选择需要的单片机I/O口作为感应按键输入口;软件上,根据Atmel公司提供的函数库,将所选的I/O口配置成感应按键输入口,调用QTouch函数库接口对感应按键信号进行采集。实验结果表明,该方案设计简单,应用灵活,且具有较高的可靠性。
关键词:感应按键;ATmega48;QTouch

1 概述
    感应按键技术,作为一项新兴的技术,已经广泛用于各种产品。尤其是近两年以来,采用感应按键的家电产品呈爆发式增加。目前,市面上的这类产品主要有智能电冰箱、数字液晶电视、热水器、电热炉等家电产品。采用感应式按键的家电产品,可以设计出靓丽的控制面板,同时,与机械式按键相比具有更长的使用寿命。
    目前,感应按键的应用方式主要有两大类:
    ①采用专用芯片,比如Quantum(昆腾)公司的感应按键芯片QT240、QT1101,以及Chemtronics(康拓斯)公司的CT1008等。这类芯片内部固化了处理感应按键的软件,能够对按键感应电极(金属弹簧或导电海绵)的信号进行采集和分析,最终将分析的结果以高低电平形式输出到应用系统的处理器I/O口。比如,当手靠近感应电极的时候输出高电平,远离感应电极的时候输出低电平。这类芯片外围需要少量的分立器件,实际使用时要根据应用场合对这些外围器件的参数进行微调,以达到最佳效果。
    ②采用集成式芯片。推出这种方式的芯片厂家将处理感应按键的软件部分嵌入到单片机程序中,用户如果需要用到感应按键,只需要在单片机开发环境里将需要的I/O口配置为感应按键的输入口,同时系统通过调用芯片厂家提供的函数库接口来读取感应按键的结果。基于Atmel公司ATmega系列单片机的感应按键就是属于这种应用方式,它是将其QTouch技术的软件代码以库函数接口形式提供给用户使用。

2 QTouch技术
    QTouch技术是Atmel公司触摸技术部前身Quantum开发的一项技术。所开发的集成电路技术是基于电荷的传输电容式感测。QTouch IC检测用传感器芯片和简单按键电极之间连接来检测触摸,如图1所示。QTouch器件对未知电容的感测电极充电到已知电位。电极通常是印刷电路板上的一块铜区域,该电极可以通过金属弹簧或者导电海绵来延伸应用空问。在1个或多个电荷传输周期后测量电荷,就可以确定感测板的电容。在触摸表面按手指,导致在该点影响电荷流的外部电容,作为一个触摸记录;也可确定QTouch微控制器来检测手指的接近度,而不是绝对触摸。判断逻辑中的信号处理使QTouch健全和可靠,同时可以消除静电脉冲或瞬时无意识触摸/接近引起的假触发。


    QTouch传感器可以驱动单按键或多按键。在用多按键时,可以为每个按键设置一个单独的灵敏电平。可以用不同大小和形状的按键来满足功能和审美要求。QTouch技术可以采用两种模式:正常或“触摸”模式,以及高灵敏度或“接近”模式。用高灵敏电荷传输接近感测来检测末端用户接近的手指,用用户接口中断电子设备或电气装置来启动系统功能。为了实现良好的电磁兼容,QTouch传感器采用扩频调制和稀疏、随机充电脉冲(脉冲之间具有长延迟)。单个脉冲可以比内部串脉冲间隔短5%或更短。这种方法的优点是交叉传感器干扰较小,功耗较低,且降低了RF辐射和极化率。QTouch器件对于慢变化(由于老化或环境条件改变)具有自动漂移补偿。这些器件不需要线圈、振荡器、RF元件、专门缆线、RC网络或大量的分立元件。[!--empirenews.page--]

3 硬件设计
    基于ATmega48的感应按键,在硬件设计上非常简单,每路按键只需要一个电阻和一个电容即可实现。通常情况下,感应电极一般以铜箔形式分布在印刷电路板上,可以根据具体的应用需要将感应电极设计成不同的尺寸和形状。同时,采用金属弹簧或者导电海绵等具有导电功能的介质,能够将按键延伸到合适的长度或高度,如图2所示。


    典型应用情况下,采样电容C1或C2采用22 nF,限流电阻R1或R2采用1 kΩ。但是实际应用系统中需要根据感应按键的灵敏度,对采样电容的容值和限流电阻的阻值进行调整,以达到最佳效果。硬件原理图如图3所示。

[!--empirenews.page--]

4 函数库安装与软件配置
    要把ATmega48单片机的I/O口作为感应按键输入口来使用,首先需要安装QTouch函数库Atmel_QTouch_Libraries,目前比较新的函数库版本是4.3。安装完毕后,需要将与单片机对应的库文件加载到工程中。Atmel公司的集成开发环境AVR Studio提供了便捷的设置,新建一个工程后,可在Project→Configuration()ptions→Libraries界面中添加函数库链接文件。
    其次,需要对I/O口进行配置。在工程配置(Project→Configuration()ptions→Custom()ptions)界面设置相应的宏定义参数即可,如图4所示。


    -D_QTOUCH_:需要使用QTouch函数库。
    -DSNSK=C和-DSNS=C:表示将ATmega48 PC口设置为感应按键口。
    -DQT_NUM_CHANNELS=4:表示最大可用通道数量。
    -DQT_DELAY_CYCLES=1:表示采样电容充放电周期时间。
    另外,在应用系统源程序中需要加入库函数的头文件。代码如下:
    #include“touch api.h”[!--empirenews.page--]

5 系统应用
    应用流程如图5所示。在系统初始化之后,首先调用config_sensors()函数将需要的I/O口配置成感应按键的采样口,并对各个感应按键的各个状态进行初始化。然后是设置感应参数,这些参数包括按键校准阈值、正向漂移值、负向漂移值、最大连续感应时间等。最后,在应用系统的主程序中,需要周期地调用库函数qt_measuer_channels()对感应信号进行测量,并检测按键的状态。


    需要注意的是,感应按键采集使用了系统的一个定时器中断,因此,应用系统中的中断程序会对其造成一定的影响。这就要求在按键感应的过程中,应用系统的中断服务程序的处理时间越短越好。在电容感应工作的时候,中断服务程序处理时间不应该超过1 ms,否则将严重影响感应按键的灵敏度,甚至会导致感应按键失灵。
    应用系统程序如下:



结语
    基于Atmel QTouch技术的嵌入式感应按键设计,简化了设计难度,降低了系统的应用成本,节省了印刷电路板的尺寸空间,系统应用稳定,可灵活应用于各类电子产品中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭