极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 91058|回复: 35

Arduino入门教程--第十六课--Arduino制作讯线水位报警器模型

[复制链接]
发表于 2012-9-4 15:30:59 | 显示全部楼层 |阅读模式
因最近太忙了。教程很久都没有更新了,十分抱歉,我们今天来玩一个非常有意思的东西,希望能启发到大家,最近在汛期,各个水库都水位都在告急,因此我突然想做一个自动水位报警器的小模型,说做就做。。我们做一个最简单的,就是如果水位到达警戒水位时,警报灯会闪烁,同时会有声音提示

然后我们来设计电路



电路上结构应该很简单。利用的原理就是,其实水是能够导电的(纯净水除外),然后给水一个电压,用模拟口进行检测即可(之所以说是模型,实际环境会稍显复杂不能直接用电拿水当导体用) 如果检测到电压说明水已经到了我们标定的水位了。

我们在面包板上搭建出实验电路




然后我们开始写程序。程序之前的课程都介绍过,反反复复就这些代码。。。。
  1. /*
  2. 作者:极客工坊-迷你强
  3. 时间:2012年9月2日
  4. IDE版本号:1.0.1
  5. 发布地址:[url]www.geek-workshop.com[/url]
  6. 作用:arduino水位报警器,到达设定水位,进行指示灯和声音报警
  7. */

  8. void setup()
  9. {
  10.   pinMode(A5,OUTPUT);   //让模拟口A5作为数字口输出
  11. }

  12. void loop()
  13. {
  14. int n=analogRead(A0);
  15. if (n>=1)
  16. {
  17.    
  18.    digitalWrite(A5, HIGH);  

  19. pinMode(A2,OUTPUT);     //蜂鸣器频响 0.5秒
  20.   tone(A2,800);
  21.   delay(500);
  22. pinMode(A2,INPUT);


  23.   digitalWrite(A5, LOW);   
  24.   delay(500);      
  25. }
  26. }
复制代码
最后我们进行试验,试验过程看视频



教程已经连载不少时间了,我期待大家自己用套件做出创意十足的实验依旧没哟看到。arduino其实最重要的是在基础教程的启发下,自己做出东西,这才是真正的学会了。。。我,期待你的分享,无论是照做的实验还是自己的新玩法,分享出来,优秀的作品有赏,有机会得到各种OCROBOT的模块工程样品哟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-9-4 20:04:30 | 显示全部楼层
沙发
回复 支持 反对

使用道具 举报

发表于 2012-9-19 21:11:57 | 显示全部楼层
好东西,顶~
回复 支持 反对

使用道具 举报

发表于 2012-9-21 20:19:28 | 显示全部楼层
强哥,我想问一下,用数字口应该可以达到同样的效果吧。另外:  
digitalWrite(A5, HIGH);  
pinMode(A2,OUTPUT);     //蜂鸣器频响 0.5秒
tone(A2,800); 这句是什么意思呢?为什么要重新设置A2输出,在初始化得时候不是应经设置过了。谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-22 17:41:36 | 显示全部楼层
奥氏体 发表于 2012-9-21 20:19
强哥,我想问一下,用数字口应该可以达到同样的效果吧。另外:  
digitalWrite(A5, HIGH);  
pinMode(A ...


tone 就是发出声音的函数 。。。。。。        a2是端口  800就是800hz  频率
重新设置为输入是因为我没有想到啥好办法让他不响。。。。。因为我小白,就用了偷懒的招式
回复 支持 反对

使用道具 举报

发表于 2012-10-20 10:08:35 | 显示全部楼层
本帖最后由 花开无痕 于 2012-10-20 10:12 编辑

水的深度不同,导电性能也会不一样是吧?还有,你怎么知道n>1呢》可不可以用其他的数值,用其他的值是不对应深度不同呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-31 17:24:27 | 显示全部楼层
花开无痕 发表于 2012-10-20 10:08
水的深度不同,导电性能也会不一样是吧?还有,你怎么知道n>1呢》可不可以用其他的数值,用其他的值是不对应 ...


这样的。。这个只是个小演示。。真实使用,的是一个标杆。上面有很多的触点,接触到一个就触发一个
回复 支持 反对

使用道具 举报

发表于 2012-11-21 18:27:58 | 显示全部楼层
学以致用啊,肯定会有越来越多的优秀创意被制作出来的
回复 支持 反对

使用道具 举报

发表于 2013-1-17 21:39:29 | 显示全部楼层
本帖最后由 happyfdg 于 2013-1-17 21:49 编辑

不知道发在这里会不会有人看到。。。。
1.如果直接用A0接口的话检测的值是1023,用的话是个位数,我也知道对A0接口的处理的原理是什么(也就是引入1K的电阻和A0搭配的原理是什么)?
2.引入后即使不通路也有个位数的检测值的原因是什么?是电路噪声吗?
这是我用来观测A0值的程序。谢谢啦。。。

void setup()
{
  pinMode(A5,OUTPUT);   //让模拟口A5作为数字口输出
  Serial.begin(9600);
}

void loop()
{
  
int n=analogRead(A0);
Serial.println(n);
Serial.print("dd");

if (n>=100)
{

   digitalWrite(A5, HIGH);  

pinMode(A2,OUTPUT);     //蜂鸣器频响 0.5秒
  tone(A2,800);
  delay(500);
pinMode(A2,INPUT);
Serial.println(n);


  digitalWrite(A5, LOW);   
  delay(500);      
}
}
回复 支持 反对

使用道具 举报

发表于 2013-4-12 23:21:19 | 显示全部楼层
happyfdg 发表于 2013-1-17 21:39
不知道发在这里会不会有人看到。。。。
1.如果直接用A0接口的话检测的值是1023,用的话是个位数,我也知道 ...

n>=100,100设大了,试了刚和水面接触时才30多
回复 支持 反对

使用道具 举报

发表于 2013-5-12 23:38:50 | 显示全部楼层
这个实验,大家可以参照一个土壤湿度传感器。。那个就是一级级分级的。
回复 支持 反对

使用道具 举报

发表于 2013-5-22 21:09:42 | 显示全部楼层
考虑电极在水中的电解反应没有...这个不耐用..
回复 支持 反对

使用道具 举报

发表于 2013-8-10 19:51:14 | 显示全部楼层
其实真正实用的还是浮球系统,也就是抽水马桶水箱里那套玩意儿

实验很简单,我倒是对LZ那个开关USB线比较感兴趣,每天插拔USB无数次啊!
回复 支持 反对

使用道具 举报

发表于 2013-9-15 07:47:52 | 显示全部楼层
你好,可以麻烦解释下”然后给水一个电压,用模拟口进行检测即可“么?刚开始上这个课,之前完全没有接触过相关的,还有图中左边的是什么?还是就是普通的带开关的USB连着电脑的???谢谢
回复 支持 反对

使用道具 举报

发表于 2014-2-19 12:26:00 | 显示全部楼层
你好,我是新手,我想问一下,你没连接电脑,怎么把代码写进去啊?开关另一头接的是什么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 13:20 , Processed in 0.049514 second(s), 35 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表