电容式的液位检测硬件方案

液体填充在极板之间,等效形成电容,液面浸没的多少会改变电容大小,从而间接反映液位的高低。
在这里插入图片描述
图1
在测量的导体上我们使用的是吸液探针。探针是一个空心的导体,具有一定的电容量,当探针接触到液体表面的瞬间,探针对地的电容会突然增加。通过对电容数值变化检测就可以得知探针是否接触到页面。
在这里插入图片描述
图2
2.信号处理电路
在这里插入图片描述
图3 液面检测原理图

电路总共分为6部分
1.方波发生电路
2.高通滤波电路
3.整流电路
4.低通滤波电路
5.电压比较器
6.电平转换电路

3.工作原理
由液面检测原理可知,当探针碰到水面的瞬间,输入电容量会发生变化。NE555产生一个方波,输入电压跟随器的波形为具有一定直流偏置的方波信号,当探针接触的时候,电容瞬间增大改变了方波信号的幅度并由于RC延迟变成了三角波,TEST1端信号变化如图。
在这里插入图片描述
在这里插入图片描述
图4 TEST1信号变化

信号经过精密整流之后变成只有正电压信号,TEST2端信号变化如图。
在这里插入图片描述
在这里插入图片描述
图5 TEST2信号变化

直流信号通过低通滤波器输入到电压比较器;电压跟随器的正向输入端连接一个数值较大的电容10uF。在电容未发生变化的之前,正相输入端的电压永远大于反向输入端的电压,比较器的输出+5V,三极管导通,输入单片机信号为低。
当探针接触到液体表面的时候由于其幅值发生较大变化,输入正相输入端的电压突然减小而由于电容两端的电压不能发生突变,导致反向输入端电压高于正相输入端,此时比较器输出为-5V,三极管截止,输入单片机信号为高,TEST3端信号变化如图。

在这里插入图片描述
在这里插入图片描述
图6 TEST3信号变化
但由于电容存储的电荷有限,经过一段时间正相输入端的电压将再次超过反向输入端,所以在接触液体的瞬间可观察到指示灯闪烁一下就立即熄灭。通过设置单片机电平捕获便可判断探针是否接触到水面。

4.总结
以上的思路只是针对液面进行,也就是说探针一接触到液面就会有信号,但无法检测探针进入液体的深度。不过我们可以对电路进行改造,将比较器电路和电平转换电路去电,然后信号直接接到单片机的ADC引脚上,便可识别进入液面的深度。但测量液体深度对电路的精度比较高,所以电路还需要继续优化方可实行。

如果您喜欢,可关注个人公众号“电子应用学习馆”,获取更多的资料例程。
在这里插入图片描述

选择电容式液位开关的功能,一方面是满足自己的需求,另一方面也是在选液位开关的质量。液位开关的功能主要是用于水位检测、水位控制。而电容式液位开关常用功能就是检测液位检测液位,或者实现缺水保护功能等。一般电容式液位开关可以达到的功能为:   1.检测到水箱中某一个点时给出信号提醒,比如常见的功能的水箱中没水时,或者水位上升至某一程度时给出信号报警。   2.配合控制板等,当检测到水箱中没水时自动加水。   电容式液位开关体积小,价格便宜,最大的特点为,可以隔着介质检测容器中的水位变化。这一特点使得电容式液位开关的应用大大的扩展了。如浮球式液位开关同样价格便宜,光电式的液位开关比电容式的性能更稳定,但是无论是光电式还是浮球式的液位开关。都是属于需要给水箱开孔才能安装使用的。而电容式不用。   浮球式液位开关被限制于黏稠的液体、含杂质的液体中无法使用,因为浮球容易被卡死。并且其结构松散复杂,比较难以清洗。例如在浮球与中间的管中间的内部是很难清洗的,且浮球式液位是需要直接接触液体才能检测的,所以如果检测是的水质复杂的硬水,那么时间久之后会形成水垢。水垢会产生液位开关产生细菌,如果使用在食品机器中,比如净水器,咖啡机、饮水机等,那么里面的水长期接触带有水垢的浮球,长期以往下去会影响人体健康。而如果需要客户经常性的清洁浮球开关,那么也势必会影响用户体验,而电容式则不会有这类问题出现。
### 设计方案概述 电容式液位计通过测量液体高度变化引起的电容量的变化来确定液面位置。该系统通常由电容传感器、信号调理电路和单片机构成。电容传感器安装在容器壁上,随着液位上升或下降,介电常数发生变化从而改变电容值。 ### 功能设计 为了实现精确可靠的液位检测,整个系统的功能模块可以分为以下几个方面: - **硬件部分** - *电容传感探头*:用于感知不同介质之间的界面并转换为电信号输出[^1]。 - *前置放大器与滤波网络*: 对微弱的原始信号进行初步处理, 提升信噪比的同时去除不必要的干扰成分[^2]. - *模数转换ADC接口*: 将模拟量转化为数字形式供后续计算分析使用. - **软件部分** 单片机作为控制中心承担着重要的角色: ```c void setup() { // 初始化串口通信和其他外设配置 Serial.begin(9600); pinMode(A0, INPUT); // 设置A0引脚为输入模式以接收来自ADC的结果 // 进一步初始化其他必要的资源... } void loop() { int sensorValue = analogRead(A0); // 读取当前电容传感器数值 float voltage = sensorValue * (5.0 / 1023.0); // 计算对应的电压值 // 根据具体应用场景调整下面公式的参数 float levelPercentage = map(voltage, MIN_VOLTAGE, MAX_VOLTAGE, 0, 100); Serial.print("Liquid Level Percentage: "); Serial.println(levelPercentage); delay(1000); // 每隔一秒更新一次显示 } ``` 上述代码展示了基本框架,在实际应用中还需要加入更多特性如过载保护机制、自校准算法等以提高稳定性和准确性[^4]。 ### 软件设计原理图 ![Software Design Diagram](https://example.com/software_design_diagram.png) 此图为示意性质,并非真实存在的链接,请读者自行绘制相应的流程图表来辅助理解程序逻辑走向。 ### 相关问题
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值