实例15蜂鸣器开关的设置无源 实例16 模拟警笛(无源)

网友投稿 2019-05-12 11:27

实例15蜂鸣器开关的设置(无源)

功能:通过数字8口控制无源蜂鸣器发声。

有源蜂鸣器:上面带贴(+号)的装置,其有振荡电路,只需要有高、低电平即可发音,通电就响。。

无源蜂鸣器:上面无(+号)的装置,其没有振荡电路(日常用的耳机),需要用方波控制发音。

硬件: Arduino开发板、1个蜂鸣器(相当于喇叭)。

软件:米思齐软件

实验步骤:

一、 通过米思齐软件,图形化编程如下:

1、 在执行器中设置播放声音:

https://cdn.china-scratch.com/timg/190514/112K514D-0.jpg

选择8口,显示如下:

https://cdn.china-scratch.com/timg/190514/112K51000-1.jpg

选择数学---设置频率为1000(频率越大,声音越高),显示如下:

https://cdn.china-scratch.com/timg/190514/112K543O-2.jpg

https://cdn.china-scratch.com/timg/190514/112K553G-3.jpg

延时1秒,表示高电平输出1秒,即蜂鸣器响1秒。显示如下:

https://cdn.china-scratch.com/timg/190514/112K62014-4.jpg

选择执行器----结束声音,设置结束声音,显示如下:

https://cdn.china-scratch.com/timg/190514/112K61206-5.jpg 

https://cdn.china-scratch.com/timg/190514/112K63913-6.jpg

延时1秒,表示低电平输出1秒,即蜂鸣器关闭1秒。显示如下:

https://cdn.china-scratch.com/timg/190514/112K62324-7.jpg

2、程序代码如下:

void setup() 

{

  pinMode(8, OUTPUT);  将8口设置为输出模式 

}

void loop() 

{

  tone(8,900); 在8口写入频率为900的模拟信号 

  delay(1000); 延时1秒,即开启蜂鸣器1秒,响1秒 

  noTone(8);  关闭8口 

  delay(1000);   延时1秒,即关闭蜂鸣器1秒,停1秒

}

3、硬件连接

将USB口连接到开发板上

将无源蜂鸣器8(正极连8,负极连GND)

4、编译、上传程序设置

5、查看运行结果。

二、硬件连接设置

三、程序下载和运行测试

四、思考题

将频率改为500,1200时,看下实际效果?

实例16 模拟警笛(无源)

功能:通过数字8口控制蜂鸣器发声音,先由高到低,再由低到高。之后循环高—低---高的过程 ,类似于报警一样。

有源蜂鸣器:上面带贴(+号)的装置,其有振荡电路,只需要有高、低电平即可发音,通电就响。。

无源蜂鸣器:上面无(+号)的装置,其没有振荡电路(日常用的耳机),需要用方波控制发音。

硬件: Arduino开发板、1个无源蜂鸣器(相当于喇叭)。

软件:米思齐软件

实验步骤:

二、 通过米思齐软件,图形化编程如下:

2、 选择控制------循环,显示如下:

https://cdn.china-scratch.com/timg/190514/112K61322-8.jpg

设置循环数据如下:

https://cdn.china-scratch.com/timg/190514/112KC641-9.jpg

选择执行器,加入播放声音,选择8口,显示如下:

https://cdn.china-scratch.com/timg/190514/112KAM8-10.jpg

https://cdn.china-scratch.com/timg/190514/112KK429-11.jpg

修改频率值为i变量,显示如下:

https://cdn.china-scratch.com/timg/190514/112KJ453-12.jpg

https://cdn.china-scratch.com/timg/190514/112KH5H-13.jpg

设置延时2毫秒,

https://cdn.china-scratch.com/timg/190514/112KIJ6-14.jpg

同理再加个一个相反的循环,显示如下:

https://cdn.china-scratch.com/timg/190514/112KS209-15.jpg

2、程序代码如下:

void setup() 

  pinMode(8, OUTPUT); 设置8口为输出模式 

void loop()

  for (int i = 500; i <= 1000; i = i + (5)) { 循环,i从500到1000,步长为5 

    tone(8,i);  在8口写入频率i的值,由500---1000,产生振荡方波,发出类似警笛的声音,由低到高。 

    delay(2);  增加延时2毫秒,即每隔2毫秒再响下一声且声音的高度有所提高。I此时按步长为5发生变化以进入下一个循环。一直到i值上升为1000时为止。 

  }

  for (int i = 1000; i >= 500; i = i + (-5)) {   循环,i从1000到500,步长为-5  

    tone(8,i);  在8口写入频率i的值,由1000---500,产生振荡方波,发出类似警笛的声音,由高到低。  

    delay(2);  增加延时2毫秒,即每隔2毫秒再响下一声且声音的高度有所降低。I此时按步长为-5发生变化以进入下一个循环。一直到i值下降为500时为止。 

  }

}

3、硬件连接

将USB口连接到开发板上

将无源蜂鸣器8(正极连8,负极连GND)

4、编译、上传程序设置

5、查看运行结果。

二、硬件连接设置

三、程序下载和运行测试

四、思考题

将延时改为20(救护车),50(防空警报)时,看下实际效果?

说明:频率不同,声音的响度不同,响的时间也不同。类似于警报、救护车、防空警报的效果。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com