×

基于Arduino UNO的非接触式电容式液位传感

消耗积分:0 | 格式:zip | 大小:1.57 MB | 2022-12-21

香香技术员

分享资料个

本方案使用 TI FDC1004 分线器和 Arduino 来测量瓶子中的液位,使用两个粘性铜条之间的电容。

液位感应可以通过多种不同的方式完成,我们也尝试了多种方式。有时需要的是准确的液位测量,而无需在液体内部放置任何东西。这在食品工业(用于罐中的液位感应)甚至汽车中的油箱液位感应等应用中尤其受欢迎。

我们之前曾尝试使用激光 ToF 传感器来实现此目的,但这并不是实现此目的的最佳方法。

我们做了什么:
我们使用电容来测量液位,通过在罐的外壁粘上两条铜带来测量内部的液位。这两个铜带测量电极之一相对于地的电容。

TI FDC1004 是一款将电容测量和 ADC 集成在一个封装中的一体化芯片,称之为“电容数字转换器”。指定的应用包括接近检测、手势识别和液位传感。

使用电容进行接近感应和液位感应的原理是相同的。当两个平行的导电板以固定距离放置时,就会产生电场。在这些板的边缘,会产生“边缘”效果。这是电容式传感应用的关键。

不同应用的电容感测可以通过不同的方式完成。在此应用中,我们使用“平行手指”方法来感测受液位影响的边缘电场线的数量。这会导致电容的微小变化,然后测量并校准到液位高度。

我们是怎么做的?
实际应用是一个更大的设置,但为了本文,我们在一个小水瓶上演示了相同的设置。我们粘贴了两条从Sparkfun购买的薄铜带(5 毫米宽)。

然后我们将其中一个电极连接到系统接地,另一个连接到 FDC1004 分线板的 CIN1 通道。最好将它们直接焊接到电极本身以避免任何杂散电容。

ProtoCentral FDC1004 分线板使用 I2C 标准接口连接到 Arduino Uno。该芯片连接到 Arduino 的 SCL 和 SDA 引脚(对于 Arduino Uno,这是 A4 和 A5)。它可以连接到任何控制器或平台的 I2C 引脚,但提供的库仅适用于 Arduino。如果您使用的 Arduino 版本不同于 Arduino Uno,请检查哪些引脚对应于 I2C/TWI SDA 和 SCL 线。

数据通过 Arduino 的 UART 通过 USB 发送到计算机。该数据以 100 SPS 的速率连续发送,然后在代码中取平均值,这有助于滤除噪声。

在这个例子中,我们刚刚将电容到水平高度转换硬编码到 Arduino 代码本身,但是,校准可用于为各种高度和液体类型设置相同的值。

我们使用蠕动泵从另一个瓶子中抽取的水测试了该设置。本文下方的链接中附有所有必需的代码。

注意事项

  • 任何传感或工程机制总是有它自己的一套限制。对于这个应用程序,这是我们注意到的:
  • 电容式感应容易受到外部杂散电容的影响,有时会使 ADC 饱和。然而,这是使用适当的屏蔽来修复的。
  • 校准是关键,准确校准很重要
  • 环境因素对电容有巨大影响,必须对其进行屏蔽和/或适当校正。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !