水位报警系统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 电线。
我一直在寻找制作基于 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 电线。