我一直在寻找一个很好的教程来制作一个基于 ardunio 的水位报警系统。我已经浏览了很多页面,我对电子产品的讨论并不了解。
我的想法是将接地电缆保持到水箱底部,并安排不同长度的电缆以定义高度并将它们连接到模拟引脚。
当水接触电缆时,我将读取“0”。如果水位低于紧急水位,我想使用两个 LED,一个绿色,当 Arduino 紧急停止时使用红色。
我需要电路方面的帮助,我将我的想法保留在原理图中。
任何建议将不胜感激!
谢谢,
最好的问候, 赛
我一直在寻找一个很好的教程来制作一个基于 ardunio 的水位报警系统。我已经浏览了很多页面,我对电子产品的讨论并不了解。
我的想法是将接地电缆保持到水箱底部,并安排不同长度的电缆以定义高度并将它们连接到模拟引脚。
当水接触电缆时,我将读取“0”。如果水位低于紧急水位,我想使用两个 LED,一个绿色,当 Arduino 紧急停止时使用红色。
我需要电路方面的帮助,我将我的想法保留在原理图中。
任何建议将不胜感激!
谢谢,
最好的问候, 赛
你必须小心,因为水不是完美的导体。它会产生一些阻力。您需要了解电阻和您使用的上拉或下拉电阻会创建分压器。该分压器中心的电压必须大于 3V,才能使引脚读取为高电平。为此,您需要一个更弱的上拉电阻,更像是兆欧级的。
我也更喜欢将此处的“开关”连接为低电平有效的想法。所以在油箱底部接地并将电阻从引脚连接到+ 5V。我怀疑你可以使用内部引体向上,因为它们可能太强了。您必须使用外部上拉电阻。在这种情况下,当它感应到水时,引脚会显示为低电平。
您在这里必须担心的另一件事是电解。您将在容器中的电线上制造一些氢气和氧气,然后您将留下部分电线。通常,像这样的传感器使用交流电压,因此电解会轮流驱动两个方向,并且不会丢失电线上的材料。
基本上,水应该充当电缆上的开关。所以我们可以从 arduino 给出的数字按钮示例开始,然后重写它以满足您的需求。
当按下连接到引脚 2 的按钮时,打开和关闭连接到数字引脚 13 的发光二极管 (LED)。
由于我们希望按下水按钮时 LED 停止点亮,因此我们将修改此示例的最后一部分。
注意:在大多数 Arduino 上,板上已经有一个 LED 连接到引脚 13。
现在让我们转到代码:
// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
// I slightly changed the example here, for the led to lit when no water is detected.
if (buttonState == HIGH) {
// turn LED off:
digitalWrite(ledPin, LOW);
} else {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
}
现在由您来添加更多“水开关”和更多 LED 来控制 :)
注意:我选择使用数字引脚,因为我们正在寻找一个二元决策(是水还是不水?)。也许analogPin会更精确,允许检测更纯净(导电性更差)的水......如果数字检测水不可靠,请返回模拟;)