极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24295|回复: 9

Arduino学习笔记 - Arduino 声光报警

[复制链接]
发表于 2011-12-9 22:04:50 | 显示全部楼层 |阅读模式
Arduino学习笔记—超简单以超声波为主的报警电路

本文是个人学习心得,供新人参考,老鸟可瞬间飘过···{:soso_e113:}
本文很简单,需要用到的材料:adruino uno一块(其他也可),面保线若干条,蜂鸣器或小喇叭一个,超声波模块一个

连接方法自己看定义的输入输出口即可
  1. int inputPin=4;  // 定义超声波信号接收接口
  2. int outputPin=7; // 定义超声波信号发出接口
  3. int ledpin1=13; //定义灯的接口
  4. int tower=9;//蜂鸣器的pin
  5. void setup()
  6. {
  7.   Serial.begin(9600);
  8.   pinMode(ledpin1,OUTPUT);
  9.   pinMode(inputPin, INPUT);
  10.   pinMode(outputPin, OUTPUT);
  11.   pinMode(tower,OUTPUT);//设置数字IO脚模式,OUTPUT为输出
  12. }

  13. void loop()

  14. {
  15.   unsigned char i,j;
  16.   digitalWrite(outputPin, LOW); // 使发出发出超声波信号接口低电平2μs
  17.   delayMicroseconds(2);
  18.   digitalWrite(outputPin, HIGH); // 使发出发出超声波信号接口高电平10μs,这里是至少10μs
  19.   delayMicroseconds(10);
  20.   digitalWrite(outputPin, LOW);    // 保持发出超声波信号接口低电平
  21.   int distance = pulseIn(inputPin, HIGH);  // 读出脉冲时间
  22.   distance= distance/58;   // 将脉冲时间转化为距离(单位:厘米)
  23.   Serial.println(distance);   //输出距离值                 
  24.   delay(50);   
  25.   if (distance >=10) //当距离大于10cm(这个数据可以在超声波测量的范围内随意改,3cm~450cm )
  26.   {
  27.     digitalWrite(ledpin1,HIGH);//灯亮
  28.     digitalWrite(tower,LOW);//不发声
  29.   }
  30.   else//否则

  31.   {
  32.     for(int i=0;i<80;i++)//输出一个频率的声音

  33.     {  
  34.       digitalWrite(tower,HIGH);//发声音
  35.       delay(2);
  36.       digitalWrite(tower,LOW);//不发声音
  37.       delay(2);
  38.     }
  39.     for(int i=0;i<100;i++)//输出另一个频率的声音
  40.     {
  41.       digitalWrite(tower,HIGH);//发声音
  42.       delay(1);
  43.       digitalWrite(tower,LOW);//不发声音
  44.       delay(1);
  45.     }
  46.     digitalWrite(ledpin1,LOW);//灯灭
  47.     delay(200);//延时
  48.     digitalWrite(ledpin1,HIGH);//灯亮
  49.     delay(30);//延时
  50.   }

  51. }
复制代码
后记:记得小时候看的电子电路书,尤其对里面的报警电路很感兴趣。像“断线报警器”“感应型报警器”终究只停留在书面上。没有任何的实际小电路做出来~{:soso_e121:}
今天看了几个超声波程序,搜索了下警笛的声音输出程序。就搭建了个报警电路~
把这个很简单的程序给更多和我一样的小白参考下~

继续侃哈~arduino这么多io口,可以完全做一个以其为核心的功能完善的报警系统了。例如定义在五米内检测到有物体闯入,开启摄像头对门或者其他需要监控的地方录像(省去了一直开着的麻烦),再进一步2米可以开启警报声,震慑不法分子······如果再强悍一些,可以和大菠萝相连(rpk也行)自动射击···秒杀一切烦恼~~~

太多啦~~~剩下yy的主角就是你了

评分

参与人数 1 +30 收起 理由
Ansifa + 30

查看全部评分

回复

使用道具 举报

发表于 2011-12-9 22:10:01 | 显示全部楼层
本帖最后由 Ansifa 于 2011-12-9 22:11 编辑

{:soso_e104:}
支持动手~提供几个报警器的思路:人体红外感应,红外激光警戒线(电影那些红色激光的都是浮云),使用Arduino双音多频拨打电话。使用Arduino驱动GSM模块拨打电话。使用语音模块进行电话报警时应答,SD卡和时钟模块记录出事的时间,和哪个传感器动作了等
回复 支持 反对

使用道具 举报

发表于 2011-12-9 22:17:28 | 显示全部楼层
Ansifa 发表于 2011-12-9 22:10
支持动手~提供几个报警器的思路:人体红外感应,红外激光警戒线(电影那些红色激光的都是浮 ...

以前想过做这个,后来在淘宝一搜有一大堆产品
回复 支持 反对

使用道具 举报

发表于 2011-12-10 09:41:35 | 显示全部楼层
不错啊 不过。。这开场白咋这么熟呢{:soso_e132:}{:soso_e113:}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-12-10 11:39:05 | 显示全部楼层
wali 发表于 2011-12-10 09:41
不错啊 不过。。这开场白咋这么熟呢

开场白也开源了呗~~
回复 支持 反对

使用道具 举报

发表于 2011-12-13 14:23:55 | 显示全部楼层
我没记错,,,tone这个函数,是用来发声的,,,但由于我没arduino,所以也没测试过
回复 支持 反对

使用道具 举报

发表于 2011-12-14 14:39:34 | 显示全部楼层
奈何col 发表于 2011-12-13 14:23
我没记错,,,tone这个函数,是用来发声的,,,但由于我没arduino,所以也没测试过

我也想问这个问题,用Tone不是会更简单吗,而且可以发出各种不同频率的声音,不过我自己也没试过,俺回头试一下。
回复 支持 反对

使用道具 举报

发表于 2011-12-14 17:22:10 | 显示全部楼层
zhanggang1971 发表于 2011-12-14 14:39
我也想问这个问题,用Tone不是会更简单吗,而且可以发出各种不同频率的声音,不过我自己也没试过,俺回头 ...

tone用PWM调声~~看了下代码,但我也没试过~
回复 支持 反对

使用道具 举报

发表于 2011-12-15 22:02:35 | 显示全部楼层
奈何col 发表于 2011-12-14 17:22
tone用PWM调声~~看了下代码,但我也没试过~

刚刚试过,用PMW口驱动无源蜂鸣器,用Tone函数没什么问题,可以奏曲了,但是不知为什么Tone(端口,频率,时长);其中“时长”的参数不管用, 我不得已用了delay()和noTone()配合,就没什么问题了,不知道别人有没有碰到这个问题?
回复 支持 反对

使用道具 举报

发表于 2013-6-3 11:52:51 | 显示全部楼层
我刚买这些东西,现在在学习,不会的地方还得麻烦楼主指导啊!!
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-6-2 05:17 , Processed in 0.043263 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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