热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

arduino液位传感器_使用Arduino开发板制作液位指示器

在本篇文章中,您将了解使用Arduino进行液位检测。首先,您将看到有关水位传感器的一些信息,然后您将学习如何使用此模块和一些实际示例。什

在本篇文章中,您将了解使用Arduino进行液位检测。首先,您将看到有关水位传感器的一些信息,然后您将学习如何使用此模块和一些实际示例。

什么是液位检测?

液位检测或换句话说,测量深水箱中的液体水平或水库中的水是为了控制水的深度并防止其在工业中溢出。在家庭应用中,它也可用于例如检测水箱内的水位。液位测量的目的是确定任何时刻的液位并相应地进行所需的操作。

有不同的方法来测量液位。一些传感器根据液体比重和到表面的垂直距离引起的压力来计算液体的深度。其他一些传感器从换能器发射超声波,该换能器还检测并测量反射波以计算液体深度。

我们在本篇文章中使用的传感器与Arduino兼容,并且在电阻测量的基础上工作,您很快就会发现它是如何工作的。

water-level-module.jpg (43.19 KB, 下载次数: 4)

2019-8-18 21:39 上传

所需的材料

●    Arduino UNO R3开发板

●    水位传感器

●    跳线

●    蜂鸣器

●    Arduino IDE

water-level-required-material.jpg (75.53 KB, 下载次数: 2)

2019-8-18 21:40 上传

水位传感器如何工作

water-level-pins.jpg (30.93 KB, 下载次数: 2)

2019-8-18 21:41 上传

该模块是用于检测液位的最广泛使用的模块之一,其基于电阻变化而工作。在这个模块上,有平行的导电线连接到地面,实际上是电流的路径。水是良导体,因此当这些线在水中时,它们会短路,并且模块的电阻会降低。

通过将模块固定在液体容器上,可变电阻基于水位设定在特定值上。该模块测量该模拟电阻并将其发送到Arduino。 Arduino直接使用此值或将此值转换为数字量。

该水位传感器有3个引脚。其中电源(+),连接到+ 5V,接地( - )连接到Arduino的接地端子。另一个引脚(S)是模拟输出引脚。

water-level-pinout.compressed.jpg (48.94 KB, 下载次数: 1)

2019-8-18 21:42 上传

水位传感器与Arduino开发板的连接

您不需要任何专用的库来使用此传感器。只需读取输出引脚的模拟值并相应地计算液位。

电路

water-level-circuit-0.jpg (45.09 KB, 下载次数: 1)

2019-8-18 21:43 上传

代码

在Arduino板上上传以下代码并打开串行监视器窗口。将传感器放入水中,您可以在串行监视器窗口中查看结果。

/* Water level sensor

*  by Hanie Kiani

*  https://electropeak.com/learn/

*/

const int analogInPin = A0;

int sensorValue = 0;

void setup() {

Serial.begin(9600);

}

void loop() {

sensorValue = analogRead(analogInPin);

Serial.print("Sensor = " );

Serial.print(sensorValue*100/1024);

Serial.println("%");

delay(1000);

}

water-level-serial-plotter.png (13.36 KB, 下载次数: 1)

2019-8-18 21:44 上传

将液位传感器用作雨量探测器

您还可以使用水位传感器通过蜂鸣器检测雨水。 要检测是否正在下雨,请将传感器水平放置,使雨滴落在传感器上并增加针脚S的值。

当传感器开始变湿时,蜂鸣器每隔几秒就会开始发出哔哔声。 当模块完全变湿时,蜂鸣器发出更大声的警告并继续发出连续的哔哔声。

电路连接

water-level-circuit-1-1.jpg (54.59 KB, 下载次数: 2)

2019-8-18 21:45 上传

代码

/*

* Rain Detector with Water level sensor

*  by Hanie kiani

*  https://electropeak.com/learn/

*/

const int sensorMin = 0;     // sensor minimum

const int sensorMax = 1024;  // sensor maximum

const int buzzer = 9;

void setup() {

Serial.begin(9600);

pinMode(buzzer, OUTPUT);

}

void loop() {

int sensorReading = analogRead(A0);

int range = map(sensorReading, sensorMin, sensorMax, 0, 3);

// range value:

switch (range) {

case 0:    // Sensor is wet

Serial.println("ٌWet!");

tone(buzzer, 5000);

break;

case 1:    // Sensor getting wet

Serial.println(" Warning");

tone(buzzer, 1000 , 5);

break;

case 2:    // Sensor dry

Serial.println("Dry");

noTone(buzzer);

break;

}

delay(10);  // delay between reads

}

map()函数将传感器范围0到1024分为3个部分。

tone()函数在蜂鸣器引脚上发送PWM信号,使蜂鸣器发出声音。

tone(buzzer, 5000);

第一个参数指定输出引脚,第二个参数确定PWM频率。 它还可以有第三个参数代表信号持续时间。

以上就是本篇文章的全部内容。您可以尝试将SMS模块(如Sim800模块)与雨量探测器一起使用,以便通过手机上的信息通知您下雨。如有问题,请随时在本帖下面进行回复。



推荐阅读
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 标题: ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
author-avatar
淑香门蒂
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有