历史上的今天
返回首页

历史上的今天

今天是:2025年05月17日(星期六)

2021年05月17日 | MSP430电容触摸转轮和LED PWM输出设计

2021-05-17 来源:eefocus

简介


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


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.2 转轮算法


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



当用户在转轮上操作的时候,在手指对应位置的电极会获得最高的信号值,手指临近的通道会有相对高的信号值,离手指最远的通道检测到的信号值最小,如图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个或者更多。


2.LED PWM驱动方案实现


要实现LED呼吸的效果,就要求LED进行PWM调光,而要实现轨迹灯的效果,每一路LED必须是独立的PWM控制。


本应用由于使用了24个LED灯,需要24路的PWM输出控制,MSP430G2955有32个IO口,通过IO口配合TIMER定时器,足够支持24路的软件PWM输出。


3.设计实例


本实例采用德州仪器MSP430G2955,通过6个IO完成电容触摸检测,24个IO驱动24路LED,并预留了通讯口。 设计实例如图4



3.1 电路设计


原理图设计如图4, MCU通过一个5V转3.3V的LDO给VCC供电,使用LDO的目的是为了保证电源的稳定,让触摸电路在检测信号时不会因为电源的噪声产生过大的信号偏差。电极上串的电阻作为ESD保护器件,如果在产品结构设计合理的情况下可以省去。电路中预留了UART口与主控系统通讯。



LED驱动部分电路如图5,由于每一个LED的电流在10mA左右,24个LED如果同时亮就有240mA,无法通过MCU IO口直接驱动,在每个LED上加一个三极管以及限流电阻,实现24路LED的控制。



3.2 代码设计


3.2.1 LED驱动


在编写代码控制LED点亮时序前,先定义好PWM输出相关的规格:


PWM输出占空比设置为50%。


频率为5KHz, 亮度的等级分为24级,0级的时候关闭LED,23的时候最亮。


使用2个TIMER进行PWM输出的控制。


TIMERA0中断频率为24X5KHz=120KHz.


TIMERB中断间隔设为10ms,在TIMERB中进行LED亮度等级的改变。


通过两个TIMER的中断配合,就可以完成24路独立PWM输出的控制。当有触摸事件产生时,根据触摸位置对对应的LED进行亮度等级赋值,然后在TIMERB的中断中让亮度等级慢慢减少至零,这样就可以实现手指离开电极后,对应LED慢慢变暗的效果。


在两个TIMER中断里的程序流程图如下图7和图8




3.2.2 转轮


德州仪器的电容触摸软件库支持电容按键的信号检测以及转轮坐标的计算,通过软件库相关参数的配置以及函数的调用就可以得到当前触摸事件的位置值,可以参考德州仪器的触摸按键软件库获得详细介绍。


当用户在转轮上做滑动操作,LED的轨迹显示应该是N个灯同时被点亮,手指所在位置的灯最亮,之前滑过的轨迹上的灯一个比一个暗,N的数值由操作者滑动的速度决定,如果滑的速度够快,24个LED灯会同时被点亮,只是亮度不同。


在滑动很快的操作时会带来一个问题,电容按键扫描的周期跟不上滑动的速度,导致坐标的变化不是连续的,结果就是LED的轨迹不连贯,在连续的N个LED中有部分没有被点亮。为了解决这个问题需要在转轮坐标计算后加入一个插值算法,在用户操作过快的时候对被漏掉的坐标进行补值,使得LED的轨迹连续。


插值的方法可以通过当前位置和上一次位置的比较,决定是否要进行插值,这里需要设置一个插值门限InterpolationThreshold,当位置跳动距离超过门限就不进行插值,反正误操作产生。


if((WheelPosition-LastPosition)< InterpolationThreshold)


for (j=1;j<=(WheelPosition-LastPosition+1);j++)


SetLightLevel(LastPosition+j);


除此之外,还需要对两个特殊情况做处理,及正向和反向滑动操作经过转轮坐标0点。


4.总结


本文介绍了使用MSP430G系列单芯片实现电容触摸转轮和24路独立PWM输出LED控制方案,在一些需要低成本的产品设计,又要对多种LED特效控制的场合,有很大的使用价值。


推荐阅读

史海拾趣

创都(CAX)公司的发展小趣事

在电子行业的浪潮中,创都(CAX)公司凭借其卓越的技术创新能力,逐渐崭露头角。公司创始人李先生是一位热衷于新技术的电子工程师,他带领着一支由业内顶尖人才组成的研发团队,不断挑战技术极限。在一次偶然的机会中,他们成功研发出了一款具有革命性意义的高效能芯片,这款芯片不仅性能卓越,而且成本大幅降低,迅速在市场中获得了广泛认可。随着这款芯片的成功推出,创都公司的知名度迅速提升,订单量激增,公司也借此机会逐步扩大了生产规模和市场占有率。

AD Semiconductor公司的发展小趣事

在电子行业的浪潮中,创都(CAX)公司凭借其卓越的技术创新能力,逐渐崭露头角。公司创始人李先生是一位热衷于新技术的电子工程师,他带领着一支由业内顶尖人才组成的研发团队,不断挑战技术极限。在一次偶然的机会中,他们成功研发出了一款具有革命性意义的高效能芯片,这款芯片不仅性能卓越,而且成本大幅降低,迅速在市场中获得了广泛认可。随着这款芯片的成功推出,创都公司的知名度迅速提升,订单量激增,公司也借此机会逐步扩大了生产规模和市场占有率。

ADDtek公司的发展小趣事

企业文化是企业的灵魂和精神支柱。创都公司自创立之初就注重企业文化的建设与发展。他们倡导“创新、协作、务实、进取”的企业精神,鼓励员工勇于创新、敢于担当。同时,公司还注重员工培训和职业发展规划的制定与实施,为员工提供了广阔的发展空间和良好的职业前景。这些措施不仅激发了员工的积极性和创造力还增强了企业的凝聚力和向心力使得创都公司在激烈的市场竞争中始终保持着旺盛的发展势头。

联捷(Elinker)公司的发展小趣事

1999年,联捷(Elinker)在浙江的一个小镇上悄然成立,创始人凭借其敏锐的市场洞察力和对电子行业的热情,开始了艰难的创业之旅。初期,公司主要从事低端电子产品的生产和销售,面临着资金短缺、技术落后等重重困难。然而,创始人凭借着坚韧不拔的精神和不断的学习创新,逐渐在市场中站稳了脚跟。

Heimann Optoelectronics Gmbh公司的发展小趣事

为了进一步扩大市场份额,Hei Inc Optoelectronic Division积极实施国际化战略。公司首先在欧洲和北美市场设立了分支机构,并建立了完善的销售和服务网络。通过参加国际展会、与当地企业建立合作关系等方式,公司成功地将产品推向了国际市场。同时,公司还加大了对海外研发中心的投入,吸引了众多国际顶尖的光电子专家加盟。这些举措不仅提升了公司的国际竞争力,还为公司带来了更多的国际订单和合作伙伴。

eLED.com Corp公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,eLED.com Corp始终坚持以创新驱动为发展战略。公司不断加大研发投入,积极引进新技术、新材料和新工艺,推动产品的升级换代。同时,eLED.com Corp还积极探索新的应用领域和市场空间,如智能家居、智慧城市等领域。通过不断创新和产业升级,eLED.com Corp成功实现了从传统制造业向高新技术产业的转型。

问答坊 | AI 解惑

用AT89C51单片机做一个倒车雷达的毕业设计

我打算用AT89C51的单片机做一个倒车雷达的毕业设计,大家有没有好的设计方案? 软件的设计,硬件的设计。 我邮箱:lovew230@163.com…

查看全部问答>

跳槽前要想清楚的六件事

跳槽,职场人士既熟悉而又陌生的词汇,可谓是职场上的热门话题。说它熟悉,那是因为有很多人有跳槽的经历;说它陌生,那是因为有很多人听过,但没实践过。职场人士为什么喜欢跳槽?根据帝王职业顾问的研究,无外乎三个方面的原因:一是,非常不喜欢 ...…

查看全部问答>

PXA255用NORFLASH储存NK,用NANDFLASH储存一般的大文件?

用PXA255,wince系统,用NORFLASH存储NK并实现加载系统,现想增加一片2G的NANDFLASH用于存储文件,用usb1.1与PC实现同步后,可向NANDFLASH里拷贝文件,想问的是,如何使NANDFLASH实现文件系统,在wince系统里将其看做一个文件夹,这样与PC同步后, ...…

查看全部问答>

wince 6.0 sd卡驱动睡眠唤醒

现在wince6.0的sd卡驱动的睡眠唤醒的过程模拟了一个sd card拔出和sd card插入的过程。 也就是说按下睡眠键的时候,sd card存在于卡套中,驱动会做一个sd card拔出的模拟过程;当机器唤醒的时候sd 驱动监测到卡在,就模拟一个卡插入的过程。这样的 ...…

查看全部问答>

请问怎么控制Ce4.2系统的任务栏的显示和关闭?

   遇到一些使用ce4.2的一体机,有的机的方案把任务栏完全锁死,运行 explorer不会出来任务栏,也有的能出来,但一直在最下文隐藏,请问有没办法把任务栏调出来显示,显示后,又有什么办法能把它完全关闭(不是隐藏)应该是关闭explorer进程?…

查看全部问答>

wince 下串口问题!请大侠赐教

ce4.2下串口1,2都好了,串口3只能发出去不能收,串口4打开失败。谁能帮我分析下可能的问题吗? 我已经根据网上提示在debug.c文件里添加了一句关闭调试串口的语句。 platform.reg文件里中: 前面范围一段如下: [HKEY_LOCAL_MACHINE\\Drivers\\ ...…

查看全部问答>

在IAR环境下,植入UCOS之后可以在线调试不?

                                 在IAR环境下,植入UCOS之后可以在线调试不?…

查看全部问答>

模电知识

问题:为什么说“只有当Aup(s)小于3时,即分母中s的一次项系数大于零,电路才能稳定工作,而不产生自激振荡。”?请各位大侠帮忙讲解一下。Aup(s)是P点的电压增益…

查看全部问答>

欢迎探讨:应该怎样编写和管理你的程序?

《ARM Cortex-M0从这里开始》          从我们读书到工作,没有一个地方和一个人特别对你提出要求,需要怎样去管理你的程序。当然大一点的公司都有一套自己的管理方法,但对于大多数初学者或是小公司的工程 ...…

查看全部问答>

针对SEED-EXP430F5529LCD背光的Ti元器件申请!

控制SEED-EXP430F5529 LCD背光的元器件:TPS75105DSKR没有焊接!让人有些不爽! 好在TI的样片申请一向容易!我上午提交了申请请求!下午就给我安排了寄送!这办事效率!膜拜中。。。。。。! 坐等样片归来!进行焊接!嘿嘿!还在纠结背光问题 ...…

查看全部问答>