arduino——UINO的水位指示器

使用ARDUINO的水位指示器

学到什么
1.用UNO编写水位指示器程序
2.理解水位传感器工作原理
3.提供在线仿真
点击使用ARDUINO的水位指示器开始在线仿真
在这里插入图片描述

在这个项目中,我们将制作一个水位指示器。我们都知道它是最重要的产品之一,因为每个家庭或办公室都有很多水箱,其中大多数都不容易检查其中的水位,我认为我们大多数人都面临着诸如缺水之类的问题,因为我们没有任何东西来监测水箱中可用的确切水量,这会导致许多问题我们的日常生活。

在此项目中,我们将使用以下组件

  • Arduino UNO
  • 发光二极管
  • 水位指示器(电位计)

组件详细信息

Arduino UNO

  • Arduino UNO是Arduino家族的开源微控制器。
  • 我们将其用作该项目的主控制器。
  • 使用这个,我们可以测量水位传感器的读数,并相应地指示用户。
  • 它具有14个数字输入/输出引脚,可用于控制任何数字组件或可用于读取数字传感器。
  • 它具有6个模拟输入/输出引脚,用于模拟读写功能。
  • 用于模拟引脚的ADC为10位,范围为0-1023。

注意- 在Arduino UNO上上传代码时,断开连接到Rx(D0)和Tx(D1)引脚的任何电线,否则上传代码时会出现错误。

水位传感器

在这里插入图片描述

  • 水位指示器的工作原理与电位计原理相同。
  • 它有三个引脚,如Vcc,Gnd和Signal。
  • 传感器上有两种裸露的铜带,分别是Vcc和传感器线。
  • 当它出现在水箱中时,电导率增加,电阻因此而减小,它增加了水位传感器传感器引脚上的输出电压。
  • 传感器的输出值随水箱中水位的高度而变化。
  • 这给出了模拟输出,因此我们将使用Arduino UNO的模拟引脚来读取传感器值。
  • 由于这将具有模拟值,因此我们必须在项目中使用它之前对其进行校准。
    在这里插入图片描述我们用电位计代替水位传感器

发光二极管

  • LED 代表发光二极管。

  • 它们在本项目中用于指示目的。

  • LED就像普通的二极管一样,它们只允许电流从一个方向通过。

  • 它们有不同的颜色,LED的颜色根据其制造中使用的材料而有所不同。

  • LED中有两个端子,较大的一个是阴极,另一个是阳极。

  • 使用端子的长度,我们可以计算出LED的极性,但如果两个端子的大小相同,那么LED上有一个平坦的一面,那一边是负极,另一边是正极。

  • 项目概况

水位指示器的工作原理是由于容器中的水量发生变化而导致水位传感器的阻力变化。

基本上,水位传感器中有两个平行的条带,一个用于电源,另一个用于传感器条。众所周知,水是电的导体,因此当我们增加容器中的水量时,更多的传感器长度就会出现在水中,这将增加条带之间的电导率,因此,它也会增加传感器引脚上的电压。我们将在Arduino UNO上读取该电压。

为了获得容器中确切的水位量,我们必须用水校准传感器,因为我们不能保证每个水的输出电压都是相同的,因为我们知道水中溶解了大量材料,因此对于不同的水源,它会有所不同, 因此,我们必须首先对其进行校准。

为了校准传感器,我们将取一个装有水的容器,我们将通过改变容器中的水位来读取传感器中的值。我们将执行此操作,直到容器装满水,我们将记下所有参考值并将其标记为每个级别的阈值。

与本项目一样,我们在模拟中进行了建模,因此无法根据水位更改值,因此我们使用了电位计,并随机选择了阈值。

使用实际组件进行此项目时无需担心,因为水位传感器的传感器值将与电位计的输出格式相同。

现在我们知道了水位指示器的工作原理,让我们来看看项目的电路图。

电路图

在这里插入图片描述

代码

int red=2;
int green=3;
int blue=4;

void setup () {
  pinMode (red,OUTPUT);
  pinMode (green,OUTPUT);
  pinMode (blue,OUTPUT);
  Serial.begin (9600);}
 
void loop() {
  // read the input on analog pin 0:
  int value = analogRead(A0);
  
  if (value > 500) {
    Serial.println("Very heavy Rain");
    digitalWrite (red,HIGH);
    digitalWrite(green,LOW);
    digitalWrite(blue,LOW);}
  else if ((value > 300) && (value <= 500)) {
    Serial.println("AVERAGE Rain");
    digitalWrite (green,HIGH);
    digitalWrite (red,LOW);
    }
  else{
    Serial.println("Dry Weather");
    digitalWrite (blue,HIGH);
    digitalWrite (red,LOW);
    digitalWrite (green,LOW);
  delay(100);
  }
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

结束

是谁在唱歌,温暖了寂寞
在这里插入图片描述