Arduino入门教程--第十六课--Arduino制作讯线水位报警器模型
因最近太忙了。教程很久都没有更新了,十分抱歉,我们今天来玩一个非常有意思的东西,希望能启发到大家,最近在汛期,各个水库都水位都在告急,因此我突然想做一个自动水位报警器的小模型,说做就做。。我们做一个最简单的,就是如果水位到达警戒水位时,警报灯会闪烁,同时会有声音提示然后我们来设计电路
电路上结构应该很简单。利用的原理就是,其实水是能够导电的(纯净水除外),然后给水一个电压,用模拟口进行检测即可(之所以说是模型,实际环境会稍显复杂不能直接用电拿水当导体用) 如果检测到电压说明水已经到了我们标定的水位了。
我们在面包板上搭建出实验电路
然后我们开始写程序。程序之前的课程都介绍过,反反复复就这些代码。。。。/*
作者:极客工坊-迷你强
时间:2012年9月2日
IDE版本号:1.0.1
发布地址:www.geek-workshop.com
作用:arduino水位报警器,到达设定水位,进行指示灯和声音报警
*/
void setup()
{
pinMode(A5,OUTPUT); //让模拟口A5作为数字口输出
}
void loop()
{
int n=analogRead(A0);
if (n>=1)
{
digitalWrite(A5, HIGH);
pinMode(A2,OUTPUT); //蜂鸣器频响 0.5秒
tone(A2,800);
delay(500);
pinMode(A2,INPUT);
digitalWrite(A5, LOW);
delay(500);
}
}最后我们进行试验,试验过程看视频
http://player.youku.com/player.php/sid/XNDQ2NzY1NDgw/v.swf
教程已经连载不少时间了,我期待大家自己用套件做出创意十足的实验依旧没哟看到。arduino其实最重要的是在基础教程的启发下,自己做出东西,这才是真正的学会了。。。我,期待你的分享,无论是照做的实验还是自己的新玩法,分享出来,优秀的作品有赏,有机会得到各种OCROBOT的模块工程样品哟。 沙发:lol:lol:lol 好东西,顶~ 强哥,我想问一下,用数字口应该可以达到同样的效果吧。另外:
digitalWrite(A5, HIGH);
pinMode(A2,OUTPUT); //蜂鸣器频响 0.5秒
tone(A2,800); 这句是什么意思呢?为什么要重新设置A2输出,在初始化得时候不是应经设置过了。谢谢
奥氏体 发表于 2012-9-21 20:19 static/image/common/back.gif
强哥,我想问一下,用数字口应该可以达到同样的效果吧。另外:
digitalWrite(A5, HIGH);
pinMode(A ...
tone 就是发出声音的函数 。。。。。。 a2是端口800就是800hz频率
重新设置为输入是因为我没有想到啥好办法让他不响。。。。。因为我小白,就用了偷懒的招式 本帖最后由 花开无痕 于 2012-10-20 10:12 编辑
水的深度不同,导电性能也会不一样是吧?还有,你怎么知道n>1呢》可不可以用其他的数值,用其他的值是不对应深度不同呢? 花开无痕 发表于 2012-10-20 10:08 static/image/common/back.gif
水的深度不同,导电性能也会不一样是吧?还有,你怎么知道n>1呢》可不可以用其他的数值,用其他的值是不对应 ...
这样的。。这个只是个小演示。。真实使用,的是一个标杆。上面有很多的触点,接触到一个就触发一个 学以致用啊,肯定会有越来越多的优秀创意被制作出来的 本帖最后由 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);
}
}
happyfdg 发表于 2013-1-17 21:39 static/image/common/back.gif
不知道发在这里会不会有人看到。。。。
1.如果直接用A0接口的话检测的值是1023,用的话是个位数,我也知道 ...
n>=100,100设大了,试了刚和水面接触时才30多 这个实验,大家可以参照一个土壤湿度传感器。。那个就是一级级分级的。 考虑电极在水中的电解反应没有...这个不耐用.. 其实真正实用的还是浮球系统,也就是抽水马桶水箱里那套玩意儿 ;P
实验很简单,我倒是对LZ那个开关USB线比较感兴趣,每天插拔USB无数次啊! 你好,可以麻烦解释下”然后给水一个电压,用模拟口进行检测即可“么?刚开始上这个课,之前完全没有接触过相关的,还有图中左边的是什么?还是就是普通的带开关的USB连着电脑的???谢谢 你好,我是新手,我想问一下,你没连接电脑,怎么把代码写进去啊?开关另一头接的是什么?