水位报警系统Arduino

Water level alarm system Arduino

我一直在寻找制作基于 ardunio 的水位报警系统的好教程。我浏览了很多页面,我并没有完全理解电子学的讨论。

我的想法是将地线保持到水箱底部,并安排不同长度的电缆来定义高度并将它们连接到analogPins。

当水接触到电缆时,我将读取“0”。我想使用两个 LED,如果水位低于紧急水位,一个是绿色,Arduino 紧急停止时是红色。

我需要电路方面的帮助,我把我的想法写成了原理图。

任何建议将不胜感激!

谢谢,

此致, 赛

基本上,水应该充当电缆上的开关。所以我们可以从 arduino 给出的数字按钮示例开始,然后重写它以满足您的需要。

按钮

当按下连接到引脚 2 的按钮时,打开和关闭连接到数字引脚 13 的发光二极管 (LED)。

因为我们希望 LED 在按下水按钮时停止点亮,所以我们将修改此示例的最后部分。

电路:

  • LED 从引脚 13 接地
  • 水(又名按钮)连接到引脚 2 和 +5V(此处未接地!)
  • 10K 电阻从地连接到引脚 2:(你的 shema 上不见了!)

注意:在大多数 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 会更精确,允许检测更纯净(且导电性更低)的水...... 如果数字检测水不可靠,请返回模拟 ;)

你必须小心,因为水不是完美的导体。它会遇到一些阻力。您需要了解电阻和您使用的上拉或下拉电阻会创建一个分压器。该分压器中心的电压必须大于 3V,才能使引脚读取为高电平。为此,您需要一个更弱的上拉,更接近兆欧。

我也更喜欢将 "switches" 连接为低电平有效的想法。所以在水箱底部接地并将电阻器从引脚连接到 +5V。我怀疑您是否可以为此使用内部引体向上,因为它们可能太强了。您必须使用外部上拉电阻。在那种情况下,当它感应到水时,引脚读数为低。

这里你要担心的另一件事是电解。您将在容器中的电线上制造一些氢气和氧气,并且您将留下部分电线。通常像这样的传感器使用交流电压,因此电解会轮流驱动两个方向,并且您不会丢失 material 电线。