Answers:
好吧,假设您在地球上(而不是在轨道上)进行操作,则可以使用使用微型传感器测量的浮子传感器。问题是:您是否需要知道确切的水平,或者只是需要某种行程才能达到高/低?
在“特定级别的行程”主题上,您可以获得类似这样的开关-通常,浮子包含某种姿态感应开关。当水位较低时,浮子最终在其侧面,开关处于“关闭”状态,而升高水位则迫使浮子直立,因此处于“打开”状态。这些通常用于污水泵。它们非常可靠并且非常容易处理,尽管您必须小心地正确锚定它们,并且必须确保没有任何障碍物。
如果您需要了解实际水平,那么您可以选择很多,但是要简单得多。您可以使用超声波传感器之类的东西(超声波水箱从水箱顶部向下发射,以反射出水位)。
这些家伙似乎在为大型坦克制造液位指示器,该指示器由浮子和电缆连接在一起的外部重量组成。当浮子在流体上上下滑动时,外部指示器会适当移动。您可以构建类似的东西,没有什么比用光电管读取水准仪更复杂的了(如果它是一个大水箱,或者您想要很多粒度,则需要很多光电管)。
或者,采用电缆浮子的想法,您可以放置一个惰轮,该惰轮可在电缆移动时移动,然后将编码器连接到该惰轮。这将使您能够以很高的精度跟踪水平。
我知道即将发行的《实用Arduino》一书中包括一个水箱深度传感器项目,该项目使用差压传感器测量水箱底部的水压,并据此计算水箱的水位。
上面的链接中有原理图,以及指向github上的源代码的链接。
(完全公开:我与这本书没有任何联系,但是在我们当地的黑客空间见过几次作者之一。)
我喜欢但尚未尝试的一种方法是在液体中放入两个绝缘板。没有导电,电沉积,并发……。它们形成盖帽的板。并用于某种振荡器(取决于您的选择)因为水是一种很好的辩证法,所以频率很大程度上取决于板之间的水量。测量频率以获得深度。
通过施加交流信号并通过上限测量电流,您也许可以得到类似的结果。
我对这里所有复杂的电子解决方案感到惊讶,我会使用一个简单的电位计。大多数微控制器都有基本的模拟输入/输出。
+V
-----
|
|
/
\
/<----------> to analog i/p
\
|
|
-----
GND
使用标准的水箱阀浮子(可能已经有一个)。剩下的问题是将浮子耦合到锅上以获得最大摆幅(您也可以使用滑块锅)。
|-|
| |
|o| <--------Slider pot.
|||
|||
|
| <--------Coupling.
|
____ |
(float)----------o-----o <--Anchor point of float.
----
一种更聪明的方法:利用较大的水(流体)的热导率。这个想法是要有温度传感器,并在浸入水中和在空气中时测量其自热的差异。
另一种解决方案(无双关语);
按照上面的建议使用电位计。正常旋转范围是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)