投入式液位变送器

简介

投入式液位变送器采用高性能的感压芯片,配合先进的电路处理和温度补偿技术,在不同深度下传感器受到的压力不同,不同压力转化为对应数值的电流信号输出,从而达到对液位深度的测量。 本产品采用不锈钢外壳隔离防腐,可直接投入被测液体中,从水、油到粘度较大的糊状物都可以进行高精度的测量。无论是在河水、水库液位测量,还是在供水液位监测、城市地下水位监测、水处理池上都有良好的使用效果。 本产品搭配了Gravity: 电流转电压模块(4~20mA),该模块将传感器的电流信号转换为电压信号供Arduino或其他控制器读取,此产品应用于水厂、炼油厂、污水处理厂、建材、轻工、机械等工业领域,实现对液体的测量。

产品参数

引脚说明

标号 名称 功能描述
1(红) VCC 液位变送器正极
2(红,粗管) AIR PIPE 导气管
3(黑) GND 液位变送器负极

投入式液位变送器引脚对应表

标号 名称 功能描述
1 GND 电源负极(0V)
2 VCC 电源正极(3.3~5.5V)
3 A 电压信号输出
4 I+ 测量电流输入端
5 I- 测量电流输出端

电流转电压模块引脚对应表

使用教程

该教程介绍投入式液位传感器搭配电流转电压模块,将传感器输出的电流信号转化为电压信号,Arduino UNO主控板通过读取该电压信号并转换,从而实现对水深的测量,其它5V/3.3V电平的主控板使用方法类似。

基本测量原理

当液位变送器投入到被测液体某一深度,传感器末端所受到的压力为 KIT0139_Measure_principle(CH).png

同时,通过导气管将液面上的大气压力P0引入到传感器的背压腔,以抵消传感器末端的大气压力P0,使传感器测得压力为P'=P-P0=ρgh。因此,若已知液体密度ρ和重力加速度g,通过测量压力P',可推算出液位深度h。

液位传感器测得压力信号经电路转换放大与补偿后以标准的4-20mA信号输出。液位变送器电流、电流转电压模块输出电压与所测量的呈线性关系,如下图:

注意:

图中所示量程、电压与电流为对于纯水而言,若为其它液体,需要考虑该液体的密度,具体换算关系见样例代码。 |

安装连接图

KIT0139_Arduino_connection(CH).png

准备

样例代码

        /***********************************************************
      DFRobot Gravity: Analog Current to Voltage Converter(For 4~20mA Application)
      SKU:SEN0262

      GNU Lesser General Public License.
      See <https://www.gnu.org/licenses/> for details.
      All above must be included in any redistribution
     ****************************************************/

    #define ANALOG_PIN A2
    #define RANGE 5000 // Depth measuring range 5000mm (for water)
    #define VREF 5000 // ADC's reference voltage on your Arduino,typical value:5000mV
    #define CURRENT_INIT 4.00 // Current @ 0mm (uint: mA)
    #define DENSITY_WATER 1  // Pure water density normalized to 1
    #define DENSITY_GASOLINE 0.74  // Gasoline density
    #define PRINT_INTERVAL 1000

    int16_t dataVoltage;
    float dataCurrent, depth; //unit:mA
    unsigned long timepoint_measure;

    void setup()
    {
      Serial.begin(9600);
      pinMode(ANALOG_PIN, INPUT);
      timepoint_measure = millis();
    }

    void loop()
    {
      if (millis() - timepoint_measure > PRINT_INTERVAL) {
        timepoint_measure = millis();

        dataVoltage = analogRead(ANALOG_PIN)/ 1024.0 * VREF;
        dataCurrent = dataVoltage / 120.0; //Sense Resistor:120ohm
        depth = (dataCurrent - CURRENT_INIT) * (RANGE/ DENSITY_WATER / 16.0); //Calculate depth from current readings

        if (depth < 0) 
        {
          depth = 0.0;
        }

        //Serial print results
        Serial.print("depth:");
        Serial.print(depth);
        Serial.println("mm");
      }
    }

结果

在Arduino IDE串口监视器能实时显示此时变送器所处水深深度,显示单位为毫米。

常见问题

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖!

更多

DFshopping_car1.png DFRobot商城购买链接