功率电感:电阻触摸屏多点触控算法的研究与实现(二)
2.2 接触电阻的改进
触摸屏幕的压力大小不同,ITO 导电层的电阻值也不同,也就是说轻触或重触触摸屏,产生的电阻是不同的。控制芯片可以测试出接触电阻的阻值大小,但是没法分辨出是轻触,还是重触,这只会影响判断触摸点的准确性,从而会影响整个触摸屏的可靠性。下图是图2是轻触的示意图。
图2 触摸屏轻触示意图
在现阶段的方案中, 接触电阻和压力成为影响触点坐标准确性的重要因素。如果接触电阻不大于方阻,不会影响坐标显示的准确性;如果大于方阻,就会出现跳跃点。比如,轻触触摸屏上的某一点,会造成电路接通不完全,对整个电路来说,它表现为测量电阻大,测得的值比实际值要大,那么它的坐标将会向后跳跃。与其相反的,如果是用力的重触触摸屏上的某一点时,坐标会前移。由此可见轻触或重触对接触电阻的测量值影响很大,接触电阻和压力成反比。
查阅过一些四线电阻式触摸屏的技术手册后发现:他们通常使用接触电阻小于2kΩ 这个测试条件,来测试小压力这个参数。在正常力度的压力下, 一般接触电阻为2kΩ;如果压力更小, 接触电阻则会大于2kΩ。由此可见,实际测量结果与所施加的压力存在动态变化,如果加在同一点上的力量是变化的,那么测量出的坐标点就是不确定的,所以这种测量方法仍然必须改进。
在此,分解一次完整的触摸过程:(1) 手指接触到触摸屏表面,(2)手指对触摸屏逐步增加压力,(3) 压力保持,(4) 抬起手指,(5) 手指的压力逐步减小,(6) 手指离开触摸屏,整个触摸过程完成。分解过程之后可以发现,在这个过程中,手指对屏幕的压力并不是一个恒定不变的量。所以,细分整个过程,把不同时期得到的压力和接触电阻电感全部采样,然后求取平均值,那么这个值将更加接近实际数据,这就是用求平均值的根本原因。用求平均值的方法可以模拟整个触摸过程,从而排除掉前期接触、后期接触或者中间接触时压力不稳等情况。
这个改进用一个循环来实现,多次执行读取采样函数,然后求平均值。由于A/D 转换的速度很快,这给求平均值提供了有利的基础。按照程序设定,一共采样32 次,在计算求平均值的时候,利用C 语言中的左移,求得平均值。可以把这个求得的和左移5 位,就得到平均值,这种计算方式十分便捷。另一个需要考虑的问题是时间,也就是A/D 转换的速度问题。如果在完成一次触摸的整个过程中,采样的数目越多,对于触摸点平均取值就越接近实际数据,对确认触摸点坐标的影响也就越小。A/D 转换数据读取过程的实现,以及改进后的算法如下:
步:接通触摸屏电流,循环读取32 次A/D 转换器的值,并求得这些值的总和。
第二步:将求得的总和值左移五位,求得平均值,并把该平均值作为有效的数据。
改进后的算法有效避免了不同压力对准确测量电阻值的影响,提高了数据的稳定性和可靠性。可以更加准确定位坐标,特别是屏幕中间区域的触摸点,效果尤其明显。