回复地方 发表于 2011-12-9 22:04:50

Arduino学习笔记 - Arduino 声光报警

Arduino学习笔记—超简单以超声波为主的报警电路

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

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

void loop()

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

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

    {
      digitalWrite(tower,HIGH);//发声音
      delay(2);
      digitalWrite(tower,LOW);//不发声音
      delay(2);
    }
    for(int i=0;i<100;i++)//输出另一个频率的声音
    {
      digitalWrite(tower,HIGH);//发声音
      delay(1);
      digitalWrite(tower,LOW);//不发声音
      delay(1);
    }
    digitalWrite(ledpin1,LOW);//灯灭
    delay(200);//延时
    digitalWrite(ledpin1,HIGH);//灯亮
    delay(30);//延时
}

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

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

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

Ansifa 发表于 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 static/image/common/back.gif
支持动手~提供几个报警器的思路:人体红外感应,红外激光警戒线(电影那些红色激光的都是浮 ...

以前想过做这个,后来在淘宝一搜有一大堆产品

wali 发表于 2011-12-10 09:41:35

不错啊 不过。。这开场白咋这么熟呢{:soso_e132:}{:soso_e113:}

回复地方 发表于 2011-12-10 11:39:05

wali 发表于 2011-12-10 09:41 static/image/common/back.gif
不错啊 不过。。这开场白咋这么熟呢

开场白也开源了呗~~;P

奈何col 发表于 2011-12-13 14:23:55

我没记错,,,tone这个函数,是用来发声的,,,但由于我没arduino,所以也没测试过

zhanggang1971 发表于 2011-12-14 14:39:34

奈何col 发表于 2011-12-13 14:23 static/image/common/back.gif
我没记错,,,tone这个函数,是用来发声的,,,但由于我没arduino,所以也没测试过

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

奈何col 发表于 2011-12-14 17:22:10

zhanggang1971 发表于 2011-12-14 14:39 static/image/common/back.gif
我也想问这个问题,用Tone不是会更简单吗,而且可以发出各种不同频率的声音,不过我自己也没试过,俺回头 ...

tone用PWM调声~~看了下代码,但我也没试过~

zhanggang1971 发表于 2011-12-15 22:02:35

奈何col 发表于 2011-12-14 17:22 static/image/common/back.gif
tone用PWM调声~~看了下代码,但我也没试过~

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

华子 发表于 2013-6-3 11:52:51

我刚买这些东西,现在在学习,不会的地方还得麻烦楼主指导啊!!
页: [1]
查看完整版本: Arduino学习笔记 - Arduino 声光报警