带微控制器的水箱水位


24

如何使用微控制器测量水箱的水位?


1
这不值得回答,但是我的一个朋友几年前为一个艺术项目做了这个。任何感兴趣的人,我很乐意向您介绍,我相信他会很乐意解释他的做法。他的项目在这里:unixarts.com/sealevel.html 它将泵和传感器结合在一起,并且需要足够的精度来上下循环而不会产生太大的歪斜
cyphunk

7
当微控制器停止工作时-它在水下。
约翰·U

Answers:


23

好吧,假设您在地球上(而不是在轨道上)进行操作,则可以使用使用微型传感器测量的浮子传感器。问题是:您是否需要知道确切的水平,或者只是需要某种行程才能达到高/低?

在“特定级别的行程”主题上,您可以获得类似这样的开关-通常,浮子包含某种姿态感应开关。当水位较低时,浮子最终在其侧面,开关处于“关闭”状态,而升高水位则迫使浮子直立,因此处于“打开”状态。这些通常用于污水泵。它们非常可靠并且非常容易处理,尽管您必须小心地正确锚定它们,并且必须确保没有任何障碍物。

如果您需要了解实际水平,那么您可以选择很多,但是要简单得多。您可以使用超声波传感器之类的东西(超声波水箱从水箱顶部向下发射,以反射出水位)。

这些家伙似乎在为大型坦克制造液位指示器,该指示器由浮子和电缆连接在一起的外部重量组成。当浮子在流体上上下滑动时,外部指示器会适当移动。您可以构建类似的东西,没有什么比用光电管读取水准仪更复杂的了(如果它是一个大水箱,或者您想要很多粒度,则需要很多光电管)。

或者,采用电缆浮子的想法,您可以放置​​一个惰轮,该惰轮可在电缆移动时移动,然后将编码器连接到该惰轮。这将使您能够以很高的精度跟踪水平。


15

我知道即将发行的《实用Arduino》一书中包括一个水箱深度传感器项目,该项目使用差压传感器测量水箱底部的水压,并据此计算水箱的水位。

上面的链接中有原理图,以及指向github上的源代码的链接。

(完全公开:我与这本书没有任何联系,但是在我们当地的黑客空间见过几次作者之一。)


11

我喜欢但尚未尝试的一种方法是在液体中放入两个绝缘板。没有导电,电沉积,并发……。它们形成盖帽的板。并用于某种振荡器(取决于您的选择)因为水是一种很好的辩证法,所以频率很大程度上取决于板之间的水量。测量频率以获得深度。

通过施加交流信号并通过上限测量电流,您也许可以得到类似的结果。


注意,它很大程度上取决于流体的辩证常数。除非我没有记错,否则电容式感测用于检测是否存在而不是电平。不过,似乎我遇到的每种方法都取决于比重。盛有变化成分的油罐很难调节。
wackyvorlon

基于电容的液位传感器最适合检测流体的存在或不存在。为了读取水位,请使用固定电阻器对板进行充电/放电并测量时间。如上所述,向水中添加污染物(如盐)会导致电容的急剧变化,因此您在固定液位下的读数会变大。如果您要测量的液体是均匀的,那么问题就不多了。
mjh2007 2010年

我用一个简单的现成的SMD线圈制作了一个激振器振荡器,该线圈与russ这样的绝缘板共振。正弦波被平方,并且其他人计数了固件中的脉冲,换句话说,russ说的确实可行。
自闭症2015年

10

更多细节会有所帮助,但是从概念上讲,我认为超声波方法可能是最简单的(因此需要更多细节:-])。我使用MaxSonar超声波传感器为地下室的燃油箱安装了一个液位传感器。一旦可以使用,我将切换到视差Ping传感器。事实证明,MaxSonar装置有些痛苦。事实证明,它只有1英寸(2.54厘米)的分辨率,相当于我的水箱中将近7加仑。我将MaxSonar装置放在水箱顶部的PVC帽中,指向下方(液体接触不到)。


7

一种实现方法是在罐的底部指向顶部指向顶部放置一个LED,并在罐的顶部面向LED放置一个光电二极管。水箱中的水会使LED衰减,您需要进行实验来确定水量。另外,最好是使用此方法进行一系列快速测量并取平均值。


1
似乎很容易出错,环境光,晃动等
贾森小号

7

我使用本地硬件商店的便宜螺柱传感器和光电晶体管来感应指示灯。将其粘在水箱的侧面时,它会感应水位何时升高到传感器上方,并提醒我们水位过高。


6

有许多令人惊奇的方式来检查水平。有些传感器使用RF,沿波导发送脉冲并检测罐中液体表面的反射。有超声波,浮子,起泡器管,压力龙头……使用的方法取决于罐的尺寸,内容物,周围环境和其他因素。


4

我对这里所有复杂的电子解决方案感到惊讶,我会使用一个简单的电位计。大多数微控制器都有基本的模拟输入/输出。

 +V
-----
  |
  |
  /
  \
  /<----------> to analog i/p
  \
  |
  |
-----
 GND

使用标准的水箱阀浮子(可能已经有一个)。剩下的问题是将浮子耦合到锅上以获得最大摆幅(您也可以使用滑块锅)。

                  |-|
                  | |
                  |o| <--------Slider pot.
                  |||
                  |||
                   |
                   |  <--------Coupling.
                   |
   ____            |
  (float)----------o-----o  <--Anchor point of float.
   ----

您如何确保锅回到原来的位置?

当水位下降时,浮子的重量会将其拉下……
ttt

不太确定。找到合适的浮子重量,使其在有水的情况下漂浮并在没有水的情况下使锅掉落不是一件容易的事。大多数锅具有相当高的静摩擦力。但是,如果机械设置正确,我认为这是可能的。

许多较长的滑锅摩擦很小(用于指尖控制的混音器和DJ平台)。我从我的位盒中使用了一个4英寸滑块,并用普通的水箱浮子进行了测试。它甚至可以在较小的马桶水箱浮子上工作!顺便说一下,我会在锅中串联使用固定电阻,即使在潮湿的环境中短路会不会超过控制器端口的输出(或从固定的Vref吸收太多电流)。我在测试设置中使用了带有10k电位器的10k电阻器
ttt

在测试中,我只用了一根弯曲的线就可以锁在浮臂上。在马桶水箱中,手臂是方形截面的塑料,因此很容易钻一个小孔来固定。
ttt

4

最简单的方法

将一个小管放在水箱的一角,该小管的直径比乒乓球的直径略大。

将红外线LED置于灯管的一侧,并在与LED相对的地方放置一个光敏电阻(通过在灯管中钻一个不透明的孔,或者在透明的情况下放在外部)。热粘合电气部件以使其防水,然后将乒乓球掉入管中。

当水位上升或下降到乒乓球破坏红外线的程度时,您就会知道它击中了所需的水位。如果您只需要一个离散(开/关)电平指示器,则此方法有效。

该系统还用于彩弹射击枪,旨在通过确保整个球都在击发室中,然后允许电子扳机使击发电磁阀武装,来防止您切碎球。

它简单,有效,几乎不需要校准。



1

一种更聪明的方法:利用较大的水(流体)的热导率。这个想法是要有温度传感器,并在浸入水中和在空气中时测量其自热的差异。


实际上,这是在我所在的CHCH新西兰完成的,但我没有这样做,我认为它大约有20年的历史了。水箱外面有一排许多热敏电阻。所以工作正常,请您投票。
自闭症患者2015年

1

另一种解决方案(无双关语);

按照上面的建议使用电位计。正常旋转范围是270度。使用动臂将浮子连接到电位计。(长度= 1个单位)

在满载和空载之间,动臂将移动90度。

PIC上的ADC为256或1024步(是,零为步)。

为了清楚起见,我将使用256个步骤。

270度= 256个ADC步长。270/90 = 3(电位器范围的三分之一)
255/3 = 85 ADC步长

编写一些代码以在按下按钮时标记0度点(水箱为空)。

它将偏移点存储在PIC eeprom中。现在,电位计不必精确地为零,因为可以设置该校准点。

使用三角学计算查找表(提示:php脚本)以对应于ADC的每个步骤。

提示:每个ADC步骤对应于90/85 = 1.0588度。

是的,您应该在数学课上多加注意。那时候的愚蠢浪费时间,现在不可或缺。参与大脑。学习三角学。教别人。

缩写:老阿拉伯人背着一袋沉重的干草。

斜边是动臂的长度。使其长1个单位。然后,查找表提供了水箱深度的百分比。(当然乘以100)


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.