MSP430电容触摸转轮和LED PWM输出设计

发布者:雅致书香最新更新时间:2015-02-04 来源: dzsc关键字:MSP430  电容触摸转轮  LED  PWM输出 手机看文章 扫描二维码
随时随地手机看文章

    简介

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

    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];

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

    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慢慢变暗的效果。[page]

    在两个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特效控制的场合,有很大的使用价值。

关键字:MSP430  电容触摸转轮  LED  PWM输出 引用地址:MSP430电容触摸转轮和LED PWM输出设计

上一篇:基于单片机的电压实时监测系统设计
下一篇:浮点符号函数

推荐阅读最新更新时间:2024-03-16 13:52

基于反激式LED驱动芯片的可控硅调光设计
经过多年的发展,受益于成本的降低及技术的更新,LED应用在近年取得了突飞猛进的发展。如果能够兼容除了灯具以外的设备,将会节省很大的成本,使LED更快地取代当前的照明产品。当前照明用的调光器大部分为可控硅调光,因此所设计的LED驱动芯片若能兼容可控硅调光,则具有重大的意义。由于LED驱动是一门新兴的技术,市场上能兼容可控硅调光的芯片还很少,因此本文的研究具有探索研究的意义。 1 TRIAC调光原理及简介 目前市场上主流的非节能调光器多为TRIAC调光方式,即三端双向可控硅调光。TRIAC调光器也是目前应用最广的调光器。 图1为典型的双向可控硅调光电路原理图。将R及C连接成为RC电路,电源给C充电的时候,可以令TRIA
[电源管理]
基于反激式<font color='red'>LED</font>驱动芯片的可控硅调光设计
LED荧光粉知识
  LED用LED芯片上涂敷荧光粉而实现白光发射。 LED采用荧光粉 实现白光主要有三种方法,但它们并没有完全成熟,由此严重地影响白光LED在照明领域的应用。 第一种方法是在蓝色LED芯片上涂敷能被蓝光激发的黄色荧光粉,芯片发出的蓝光与荧光粉发出的黄光互补形成白光。该技术被日本Nichia公司垄断,而且这种方案的一个原理性的缺点就 是该荧光体中Ce3+离子的发射光谱不具连续光谱特性,显色性较差,难以满足低色温照明的要求,同时发光效率还不够高,需要通过开发新型的高效荧光粉来改 善。   第二种实现方法是蓝色LED芯片上涂覆绿色和红色荧光粉,通过芯片发出的蓝光与荧光粉发出的绿光和红光复合得到白光,显色性较好。但是,这种方法
[电源管理]
车载LED显示屏的特点分析
车载LED显示屏是利用led技术、GSM/GPRS技术、低温技术、抗静电技术、抗干扰技术、车载电子技术等在移动汽车上显示信息产品。它不同于在固定场所安装的普通LED显示屏。原因在于车载和广告。 车载LED显示屏特点: 1)高稳定性和可靠性 汽车是一直在移动的,对电子产品的稳定性和可靠性要求很高。 2)稳定的电源系统支持 车上电源是用蓄电池供电,汽车在启动、刹车、停止时会产生很高的脉冲电压,如果电源系统不好,就会烧毁显示屏。 3)工作温度范围宽 在北方汽车一般在室外放置。冬天温度可能达到-40°C,夏天气温可能达到60°C,这要求电源和显示屏元器件在宽温度下工作。 4)良好防静电措施
[电源管理]
LED隧道灯透镜全偏光设计技术解析
随着国内的环境污染问题日益突出,节能减排受到了前所未有的重视。 LED 作为第四代 照明 光源,具有节能、环保、寿命长等优点,已被广泛应用在室内、户外以及特殊照明上。   目前大多数的 LED 属于 (近) 朗伯型光源,为了使 LED 的发光分布符合实际应用,需要对LED进行二次配光。现有的 LED 配光有反射式 (反光杯) 和折射式 (透镜) 等方式,其中折射式配光对光的控制性强,被广泛应用于道路和隧道照明中。为了使 LED 照明灯具有更高的能量利用率,目前道路灯具的配光多数采用偏光形式。这里的偏光指的是灯具的配光沿着车辆行进方向为对称分布,而垂直于车辆行进方向为非对称分布,如图 1 所示。   随着道路照明设计的不断发展,道
[电源管理]
<font color='red'>LED</font>隧道灯透镜全偏光设计技术解析
高效无金属散热器LED照明灯关键技术简述
  LED照明 具有光效更高、寿命更长;不含有害物质汞;使用寿命与灯的开关次数几乎无关、可提倡“随手关灯”;可以瞬间起亮等突出优点,被认为终将替代白炽灯和节能灯,成为节能 照明 的主流。实际上,只有在 LED 灯的性价比全面超过白炽灯、特别是超过目前广泛使用的节能灯后才能成为通用照明灯的主流。   而LED照明的课题看起来十分明确,即在保证光质量的前提下光效需要大幅提高,例如比节能灯高一倍以上;价格需要大幅下降,最好接近节能灯;使其性价比明显优于节能灯。   目前的LED通用照明灯大多由功率型LED加金属散热器和恒流驱动电路构成。笨重的金属散热器不仅增加了灯的成本和重量,同时要消耗大量铝资源,有悖环保。一个LED灯就像一个金属球,
[电源管理]
高效无金属散热器<font color='red'>LED</font>照明灯关键技术简述
LED晶粒需求旺 订单最长要排4个月
受惠大尺寸面板背光新应用加持,再加上进入传统消费性电子旺季来临,手机市场需求回温,第3季高亮度蓝光LED晶粒需求供应仍持续吃紧,台厂晶粒的交货时间已达6周,而在供应吃紧状况下,封装厂也转为寻求其它供货商,其中美国晶粒厂Cree的交期更是长达3~4个月。 由于LED NB市场导入速度较预期加快,截至7月底,LED NB市场渗透率已达8成。LED业者预估,单单LED NB渗透率若达百分百,便足以塞爆高亮度蓝光LED产能。另一方面,再加上三星电子(Samsung Electronics)积极力拱LED TV出货量,在自产能未能充分自足自给的情况下,包下晶电大量的产能,第1季底开始,高亮度蓝光LED晶粒供货呈现吃紧状况。
[电源管理]
STM32PWM输出实现LED灯渐亮渐灭
/* *说明: *PA0:KEY1;PA1:KEY2; *PA2:LED1;PA3:LED2; *PA9:USART1_TX;PA10:USART1_RX */ #include stm32f10x.h #include stm32f10x_rcc.h #include stm32f10x_gpio.h #include stm32f10x_tim.h #include stm32f10x_pwr.h #include stm32f10x_exti.h #include system_stm32f10x.h #include misc.h void R
[单片机]
优质LED灯泡驱动电源的九大秘诀
LED 照明的发展已经进入一个新的阶段,现代照明明日之星LED灯泡驱动电源有如下要求:   (1)效率高发热少   因为电源通常为内置,与LED灯泡珠在一起,电源与 LED芯片 发出的热量会叠加在一起,当热量产生与散失平衡后,最终一起决定LED灯泡工作温度,而LED芯片工作温度又决定了LED灯泡的使用寿命;   (2)电源使用寿命长   根据木桶理论,最短的木板决定木桶能装多少水,而电源是决定LED灯泡使用寿命的那块最短的木板,所以电源是决定LED灯泡品质的关键因素。   (3)电流脉动幅度小   电流脉动幅度小不但可以提高照明光线的质量,还可以延长元件寿命,从而延长LED灯泡使用寿命。   (4)电流脉动频率高   电流脉动频
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved