找回密码
 立即注册

QQ登录

只需一步,快速开始

基础模块资料库

本帖最后由 hanreng 于 2023-4-28 15:47 编辑

基于Arduino使用频率可调蜂鸣器模块

蜂鸣器的介绍

蜂鸣器的作用:蜂鸣器是一种一体化结构电子讯响器,采用直流电源供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
蜂鸣器分类:蜂鸣器分为有源和无源,有源的直接接电源即可发声,无源的需要连接一个变化频率的电源上,才能发出声音,所以接在 Arduino 主板上也可以发出声音,但不要串接限流电阻。
蜂鸣器的电路图形符号:蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。

有源蜂鸣器与无源蜂鸣器区别

这里的“源”不是指电源,而是指震荡源,也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫,而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用 2K~5K 的方波去驱动它,有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。

无源蜂鸣器.jpg
(无源蜂鸣器模块)

产品介绍

无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用2k-5k的方法去驱动它,声音频率可控制,可以做出哆瑞咪发嗦啦西的效果。

接线方式

Arduino Nano     <------>    无源蜂鸣器
3V3/5V                 <------>     V
GND                     <------>     G  
D6                        <------>      D

程序测试——蜂鸣器发出声音

编写蜂鸣器声音响三秒再停三秒,以此来检测蜂鸣器是否能正常发出声音

Mixly图形化编程程序


          企业微信截图_15929623634958.png
(图形化程序)

程序实现代码
  1. void setup(){
  2.   Serial.begin(9600);
  3.   pinMode(6, OUTPUT);
  4. }
  5. void loop(){
  6.   tone(6,131);
  7.   delay(3000);
  8.   noTone(6);
  9.   delay(3000);
  10. }
复制代码

蜂鸣器制作音乐小案例—— 一闪一闪亮晶晶

音乐中的七个基准音(do、re、mi、fa、sol、la、si),这七个基准音对应的频率数组为:1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5,使用步长模块与数组模块,让蜂鸣器首先能发出七个基准音,每隔1S出发一个基准音,七个基准音声音发出之后,停顿3秒,再次循环播放七个基准音。

Mixly图形化编程程序

企业微信截图_15929625453453.png
(图形化程序)
程序实现代码

  1. float mylist[]={1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5};
  2. void setup(){
  3.   pinMode(6, OUTPUT);
  4. }
  5. void loop(){
  6.   for (int i = 1; i <= 7; i = i + (1)) {
  7.     tone(6,mylist[(int)(i - 1)]);
  8.     delay(1000);
  9.   }
  10.   noTone(6);
  11.   delay(3000);
  12. }
复制代码

音乐.png

Mixly图形化编程程序

一闪一闪亮晶晶程序

程序.png
(图形化程序)
程序实现代码

  1. float 基准音[]={1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5};
  2. int 音符[]={1,1,5,5,6,6,5,4,4,3,3,2,2,1,5,5,4,4,3,3,2,5,5,4,4,3,3,2};
  3. int 节拍[]={1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2};
  4. int 音调[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,};
  5. void setup(){
  6.   pinMode(6, OUTPUT);
  7. }
  8. void loop(){
  9.   for (int i = (1); i <= (sizeof(音符)/sizeof(音符[0])); i = i + (1)) {
  10.     tone(6,基准音[(int)(音符[(int)(i - 1)] - 1)] * pow(2, 音调[(int)(i - 1)]));
  11.     delay((500 * 节拍[(int)(i - 1)]));
  12.     noTone(6);
  13.     delay(10);
  14.   }
  15. } 
复制代码


分享至 : QQ空间
收藏

0 个回复

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