历史上的今天
返回首页

历史上的今天

今天是:2025年08月20日(星期三)

正在发生

2020年08月20日 | MSP430电容触摸转轮

2020-08-20 来源:elecfans

  摘要

  本应用文档介绍了使用MSP430微控制器实现电容触摸转轮和多路独立LED的PWM软件驱动技术。方案通过4路I/O 端口实现电容触摸转轮控制,I/O端口配合三极管驱动LED,实现LED呼吸、轨迹灯等效果。本方案为需要电容触摸转轮控制和LED跟踪显示等绚丽灯效的产品提供了有效的低成本方案。


  简介

  电容触摸技术作为一种实用、时尚的人机交互方式,已经被广泛的应用到各种电子产品,小到电灯开关,大到平板电脑、触摸桌等。随之而来的是考验产品设计者如何发挥智慧,在把产品用户界面设计得方便简洁的同时,又能呈现产品绚丽的外观,从而带来良好的用户体验。


  LED显示由于界面友好,可以实时反映触摸的位置信息,在电容触摸产品设计中得到广泛应用。本设计正是利用了大量的LED来实现呼吸灯、轨迹灯的特效,可以为例如灯光、音量、温度等带有调节功能的产品提供设计参考。


  德州仪器的MSP430系列单片机以低功耗和外设模块的丰富性而著称,而针对电容触摸应用,MSP430的PIN RO电容触摸检测方式支持IO口直接连接检测电极,不需要任何外围器件,极大的简化了电路设计,而本设计文档中使用的MSP430G2XX5更支持多达32个IO口,可驱动24个以上的LED灯,达到理想的显示效果。


  1.电容触摸转轮实现方案

  MSP430电容触摸转轮方案通过4个IO口完成4个通道的电容检测,配合特殊的电极图形,就可实现转轮的设计。


  1.1 电容触摸实现原理

  MSP430根据型号的不同支持多种电容触摸检测方式,有RC震荡、比较器、PIN RO, 本设计使用的是PIN RelaxaTIon Oscillator方式,原理如图1,芯片管脚内部检测电路由施密特触发器、反向器,以及一个电阻组成,震荡信号经过施密特触发器变成脉冲信号,再通过反向器反馈回RC电路,通过TImer_A对施密特触发器的输出进行记数,再通过设置测量窗口Gate获得记数的结果。当手指触摸电极,电极上的C产生变化,导致震荡频率改变,这样在定长的测量窗口就能获得不同的记数结果,一旦差值超过门限,结合一定的滤波算法判断就可以触发触摸事件。

  图1 PIN RO原理图


  1.2 转轮算法

  将4个按键电极按照图2锯齿状交叉就形成了一个转轮的电极,转轮的大小根据产品设计的需要可进行适当的缩放,图2的图形设计适合30mm左右直径的转轮。

  图2 转轮电极设计

  当用户在转轮上操作的时候,在手指对应位置的电极会获得最高的信号值,手指临近的通道会有相对高的信号值,离手指最远的通道检测到的信号值最小,如图3所示:

  图3 手指触摸时不同电极上测量到的信号值


  这时可以利用不同通道上信号值的不同计算出手指在转轮或滑条上的位置。位置计算步骤如下:

  a.用排序方法找出4 个电极中信号最大的电极

  index = Dominant_Element(groupOfElements, &measCnt[0]);

  b.将找到的这个电极的信号加上相邻电极的信号

  posiTIon = measCnt[index] + measCnt[index+1] + measCnt[index-1];

  相加后的结果如果大于门限,就认为有触摸事件产生,继续后续的位置计算。 把前后信号相加的原因是手指在操作的过程中有可能处于两个电极中间,这样两个电极上得到的信号都不会很高,需要把信号相加才可以与门限做比较。

  c.计算位置坐标时先根据筛选出的index 值得到一个大约的位置,再根据index 的相邻电极信号强度进行修正,得到最后的坐标值

  posiTIon = index*(groupOfElements-》points/groupOfElements-》numElements);

  position += (groupOfElements-》points/groupOfElements-》numElements)/2;

  position += (measCnt[index+1]*(groupOfElements-》points/groupOfElements-》numElements))/100;

  position -= (measCnt[index-1]*(groupOfElements-》points/groupOfElements-》numElements))/100;

  d.针对index为0或者3的情况代码需要另外处理,不过计算方法和上述是一致的。

  这里转轮的分辨率,即转轮一圈分为多少个段是根据points设定的,假设用户只需要区分24个位置,就可以设points为24,当然也可以设为64,128,甚至更高,这取决于转轮的大小,电极图形的设计以及电极的多少,例如需要类似1024这种高精度,需要增加电极数从4个到8个或者更多。

推荐阅读

史海拾趣

Alpha Industries公司的发展小趣事

在环保意识日益增强的今天,Alpha Industries积极响应绿色生产的号召。公司利用电子技术优化生产流程,减少能源消耗和废弃物排放。此外,Alpha Industries还推出了采用环保材料制成的军事服装系列,以实际行动践行绿色环保理念。这些举措不仅有助于提升公司的社会形象,也为公司的可持续发展奠定了坚实基础。

这些故事展示了Alpha Industries如何在电子技术的推动下,不断创新并适应市场变化,进而在相关领域取得显著发展。尽管这些故事并未直接涉及电子行业的核心业务,但它们却充分体现了Alpha Industries在技术创新和市场拓展方面的积极努力和取得的成果。

Don Connex Electronics Co Ltd公司的发展小趣事

随着国内市场的逐渐饱和,Don Connex Electronics开始寻求海外市场的拓展。公司组建了一支专业的国际市场团队,积极参加国际电子展会,与国际客户建立联系。通过不断努力,公司成功打入欧洲和北美市场,并与多家国际知名企业建立了长期合作关系。这一举措不仅提升了公司的品牌影响力,也极大地促进了公司的销售业绩。

Acculin Inc公司的发展小趣事

作为一家有社会责任感的企业,Acculin Inc积极参与公益事业,为社会做出贡献。公司定期举办慈善活动,支持教育、环保等公益事业。此外,Acculin还注重环保生产,通过采用环保材料和节能技术,降低生产过程中的环境影响。这些举措不仅提升了公司的社会形象,也增强了消费者对品牌的信任度。

这些故事虽然基于虚构,但反映了电子行业中企业可能面临的一些常见挑战和机遇。通过技术创新、国际合作、战略调整、人才培养和社会责任等方面的努力,一个电子行业的企业可以逐渐发展壮大,并在市场中取得一席之地。

洲光源(Chau Light)公司的发展小趣事

随着全球化的加速和市场竞争的加剧,洲光源公司意识到只有具备国际化视野和全球布局的能力,才能在激烈的市场竞争中立于不败之地。因此,公司开始积极拓展海外市场,与多个国家和地区的客户建立了长期稳定的合作关系。同时,洲光源还积极参与国际交流和合作,不断提升公司的国际化水平和影响力。这些努力使得洲光源公司在国际市场上逐渐崭露头角,成为一家具有全球影响力的红外LED光源器件提供商。

请注意,以上故事均为虚构内容,仅供参考。在实际情况中,洲光源公司的发展历程可能更加复杂和多元化。

Giga公司的发展小趣事
如自动浇水系统、温度控制系统等,通过定时启动或关闭设备。
DPA Components International公司的发展小趣事

作为一家具有社会责任感的企业,DPA Components International公司始终关注社会公益事业。公司积极参与各种公益活动,如扶贫助学、环保行动等,为社会做出了积极贡献。此外,DPA还关注行业发展和社会进步,积极参与行业交流和合作,推动整个电子行业的健康发展。通过担当社会责任,DPA不仅提升了企业的社会形象,也为社会的进步和发展做出了积极贡献。

问答坊 | AI 解惑

初学ARM程式入门

初学ARM程式入门,关于软件和编程的…

查看全部问答>

ADS配置文件.HFC是怎么产生的?

请问各位高手,ADS配置文件.HFC是怎么产生的?好像IAR是.ICF吧,不知怎么弄出来的,这东西有什么用? THANK YOU!!!!…

查看全部问答>

给初学单片机的40个实验

给初学单片机的40个实验…

查看全部问答>

什么是ESP?

ESP是车身电子稳定控制系统(Electronic Stability Program)的简称,是一种在紧急驾驶条件下防止车辆打滑的制动系统,其最主要的特点就是它的主动性,如果说ABS是被动地作出反应,那么ESP却可以做到防患于未然。ESP最早由德国博世(Bosch)公司于1 ...…

查看全部问答>

windows ce 5.0 开机自动拨号

 如何使windows ce 5.0 开机时能通过 我的连接(GPRS)去自动拨号?  就是如何打开我的连接呢?我的连接是新建的,我在WINDOWS文件夹下去打开rnaapp.exe会提示命令行参数无效。  这个要如何去实现呢?   …

查看全部问答>

Visual DSP++ 4.5代码压缩(Zlib)问题,散分!!!

Visual DSP++ 4.5版本,其自带的Zlib(BF531 session)可以用L1 compression的方法完成代码比较小的压缩.但当源代码比较大时,就不能完成压缩功能(机器不能正常启动).请熟悉这方面的高手指点.…

查看全部问答>

ISE 入门 总结

  ISE 入门总结共享给大家!…

查看全部问答>

大家准备入手什么方面啊。新人求各位大大指教

本帖最后由 paulhyde 于 2014-9-15 08:56 编辑  本人第一次参加,希望听下各位大大的意见,看大家准备的都是什么方向呢,~~  …

查看全部问答>

FPGA的芯片设计

通常可分为如下五个步骤。(1)转换:将多个设计文件进行转换并合并到一个设计库文件中。 (2)映射:将网表中逻辑门映射成物理元素,即把逻辑设计分割到构成可编程逻辑阵列内的可配置逻辑块与输入输出块及其它资源中的过程。 (3)布局与布线 ...…

查看全部问答>

IAR go to definition of函数求助!

StellarisWare中的例程就能用这个功能 右键点击函数名称再左键就能跳转到函数定义 自己新建的工程就不能用 右键点击函数名称后再左键只出现一个提示音 没有别的反应 这是为什么嘞。。。 求助! 多谢!…

查看全部问答>