您的位置 首页 IC

MSP430电容接触转轮和LED PWM输出规划

本应用文档介绍了使用MSP430微控制器实现电容触摸转轮和多路独立LED的PWM软件驱动技术。方案通过4路I/O 端口实现电容触摸转轮控制,I/O端口配合三极管驱动LED,实现LED呼吸、轨迹灯等效果

摘要

本运用文档介绍了运用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个或许更多。

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

图4 实例演示图

3.1 电路规划

原理图规划如图4, MCU通过一个5V转3.3V的LDO给VCC供电,运用LDO的意图是为了确保电源的安稳,让接触电路在检测信号时不会因为电源的噪声发生过大的信号误差。电极上串的电阻作为ESD维护器材,假如在产品结构规划合理的状况下能够省去。电路中预留了UART口与主控体系通讯。

图5 MCU电路

LED驱动部分电路如图5,因为每一个LED的电流在10mA左右,24个LED假如一起亮就有240mA,无法通过MCU IO口直接驱动,在每个LED上加一个三极管以及限流电阻,完结24路LED的操控。

图6 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

图7 TIMERB流程图

图8 TIMERA0流程图

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特效操控的场合,有很大的运用价值。

参阅文档

1. MSP430x2xx Family User’s Guide (SLAU144H)
2. MSP430_SLAS800_G2x55
3. Capacitive Touch Software Library Programmers Guide (Rev. A) (slaa490a)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/197596.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部