FSR薄膜压力传感器计算AO电压和压力F的关系 

2019-05-16 21:23 发布

9312 0 0

FSR薄膜压力传感器计算AO电压和压力F的关系

首先要知道一点比较重要:就是,薄膜压力传感器不适合做绝对值称重,因为接触面积,接触的物体材质软硬程度,都会影响最终输出数据的准确性,
所以建议自己直接AO引脚输出电压根据自己的应用场景实测,自己对比输出,用了多重的力,输出AD多少,自己标定标定。

如果要粗略测压力也可以简单根据下面的换算过程计算。这个准不准也是和接触面积和接触材质有直接关系,所以还是建议自己标定。而以下教程的F/R的数据只是实验室环境用对应的硅胶触头得出的表格数据做的计算,和实际会有差异,只是介绍一种计算方法。仅供参考

  1. 先看下电压转换模块的电路图

    从这张图我们可以看出来,薄膜压力传感器(下文以FSR简称)是和一个R2电阻串联分压得到的AO引脚的输出电压。

  2. 用欧姆定律可以得到,AO引脚的电压,

    Vao=VCC * Rsensor / (R2+Rsensor)

    其中R2默认值是10K欧姆,VCC就是给电压转化模块输入的电压,一般是5V,所以只要知道Rsensor就可以对应Vao的输出了

  3. 那怎么知道对应压力下的Rsensor值呢,可以看我们提供的资料包,比如买的【梳型】或者【全面银】可以在对应的规格书文件夹下找到对应尺寸型号的压力F和电阻R的对应关系的表格。下面以18mm的传感器为例:表格为:

  4. 如上图100g压力时候,Rsensor的电阻是6.853K欧姆,那么我们得到Vao的输出电压值

    Vao = 5 * 6.853 / (10+6.853) = 2.033 伏
  5. 如果不是表格内的数据,比如压力是130g时候呢?

    这种我们只能大概换算,通过比例100g和200g时候的电阻值等比例计算,或者自己更详细的去测试更精细的数据

    比如F1 = 100g对应的电阻是R1,F2 = 200g对应的电阻是R2先等比例大概换算出130g对应的电阻值。

    这里定义个map函数,如果对应平台有这个函数可以直接使用,如果没有就自己定义一个

    long map(long x, long in_min, long in_max, long out_min, long out_max) {
     return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
    }
    举例说明,输入x=130,in_min=100,in_max=200,  out_min=6.853, out_max = 3.733
    
    所以130g的电阻值就是R = map(130,100,200,6.853,3.733)
    
    =(130-100)*(3.733-6.853)/(200-100)+6.853
    
    =5.917
  6. 所以就可以得到任意压力量程范围内压力对应的电阻了。然后通过步骤4就可以计算出AO引脚输出的电压值,

  7. 上面写了这么多,只是让好理解点。不过大多数使用单片机的用户都是从电压值AO去换算压力值。另外单片机是读取的是AD值和实际的电压值还有一层换算。这其中的换算因为都是等比例的,可以简化。下面开始重头戏,如何计算,

    下面以10bit的AD为例换算一个给大家参考,先计算AD值对应的电阻。

    因为1023 / (R2+Rsensor) = AD/Rsensor
    
    所以1023Rsensor = AD(R2+Rsensor)
    
    1023Rsensor = AD*R2 + AD*Rsensor
    
    Rsensor = AD*R2/(1023-AD)
  8. 比如AD值读取是200,那么可以直接计算出对应的Rsensor的电阻为

    Rsensor =200*10/(1023-200) = 2.430 单位是KΩ
  9. 然后通过map函数同样可以计算出对应的压力值,我们查表发现2.430是在表格R的【2.82和2.313之间】,那么压力就是在【300g和400g之间】

    F = map(Rsensor, 2.82, 2.313, 300, 400)
    
      =(2.430-2.82)*(400-300)/(2.313-2.82)+300
    
      =376.9  单位是g
  10. 这样我们就可以很容易从AD值得到对应压力了,剩下就发挥各位的编程能力了,祝各位好运



B Color Smilies
快速回复 返回顶部 返回列表