基于Psoc4 capsense的液位传感器的使用
基于Psoc4 capsense的液位传感器的使用
Psoc4关于使用capsense做液位测试的实验,阅读资料后,总结如下:
1,硬件使用的目标板板为CY8CKIT-042 PSoC 4 Pioneer Kit and CY8CKIT-022 Liquid Level Sensing Shield。
2,软件开发使用cpress提供的IDE开发套件Psoc Creator进行开发。
3,实现原理:
带有传感器的PCB柔板紧贴合在塑料瓶表面,和塑料瓶表面形成电容的两端,连接形成其固有电容,叫做Cp(寄生电容)。
当目标物体(如水)接近传感器时,将少量的液体电容(CL)添加到CP,如图4所示。液位传感在当有水靠近时测量电容的增加。
更深层次的会涉及到IDAC,LFP,电容感应积分算法或SAR算法,比较器,降噪等。
大致原理就是传感器获得外部电容值的大小然后减去内部基准得到一个差值,这个差值与设定的阈值比较,如果大于阈值就认为有液位,否则判断为没有,就这么简单。内部基准psoc起了个名字叫基线。基线是通过一定的算法得到的。
一些基本定义:
Baseline:基线值
raw count:原始数值
计算液位的方法:
PCB柔板是有12个规则的等size的传感器排列组成,通过计算被液位覆盖的传感器的数量,来计算液位高度。为了确定传感器是否被液体覆盖,其差值计数与阈值进行比较,如果差异计数高于阈值,则表示传感器被覆盖,二进制状态被记录。阈值应设置在当完全被液体覆盖时的传感器差分计数的1/2。然后通过覆盖的传感器个数 X 单个传感器液位高度得到液位高度。
1,测量传感器的静态基线值
2.获取传感器的原始值
3,原始值减去基线值得到的差值,经过一定的比例系数计算后,和阈值做比较
4,阈值的计算 (没找到资料)阈值 = 1/2 X Maximum difference count of each calibrated sensor at full level
5,如果大于阈值,则传感器个数加一。
6,传感器个数 X 单个传感器的液位高度 = 实时液位高度。
所以:整个软件的流程就可以用数据的变化来总结,先是是获取原始数据,获取基线值,之后就是差值获取,然后差值与阈值比较得到结果,所以每次要想获得结果需要三个函数1,updateenabledbaselines()会获得baseline的值,并且用sensorraw的值减去baseline的值获得sensorsignal的值。2,scanenabledwidgets()获得sensorraw的值。3,checkiswidgetactive将sensorsignal的值与阈值比较得到结果。
参考资料:
官网链接:http://www.cypress.com/documentation/development-kitsboards/cy8ckit-022-capsense-liquid-level-sensing-shield?source=search&keywords=CY8CKIT-022
内含:例程,资料,IDE。