ZCZ 发表于 2020-6-24 09:41:38

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

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

基于Arduino使用频率可调蜂鸣器模块
蜂鸣器的介绍
蜂鸣器的作用:蜂鸣器是一种一体化结构电子讯响器,采用直流电源供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器分类:蜂鸣器分为有源和无源,有源的直接接电源即可发声,无源的需要连接一个变化频率的电源上,才能发出声音,所以接在 Arduino 主板上也可以发出声音,但不要串接限流电阻。蜂鸣器的电路图形符号:蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。
有源蜂鸣器与无源蜂鸣器区别
这里的“源”不是指电源,而是指震荡源,也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫,而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用 2K~5K 的方波去驱动它,有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。
(无源蜂鸣器模块)
产品介绍
无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用2k-5k的方法去驱动它,声音频率可控制,可以做出哆瑞咪发嗦啦西的效果。
接线方式
Arduino Nano   <------>    无源蜂鸣器3V3/5V               <------>   VGND                     <------>   G
D6                        <------>      D

程序测试——蜂鸣器发出声音
编写蜂鸣器声音响三秒再停三秒,以此来检测蜂鸣器是否能正常发出声音
Mixly图形化编程程序

          (图形化程序)
程序实现代码void setup(){
Serial.begin(9600);
pinMode(6, OUTPUT);
}
void loop(){
tone(6,131);
delay(3000);
noTone(6);
delay(3000);
}

蜂鸣器制作音乐小案例—— 一闪一闪亮晶晶
音乐中的七个基准音(do、re、mi、fa、sol、la、si),这七个基准音对应的频率数组为:1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5,使用步长模块与数组模块,让蜂鸣器首先能发出七个基准音,每隔1S出发一个基准音,七个基准音声音发出之后,停顿3秒,再次循环播放七个基准音。
Mixly图形化编程程序
(图形化程序)程序实现代码
float mylist[]={1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5};
void setup(){
pinMode(6, OUTPUT);
}
void loop(){
for (int i = 1; i <= 7; i = i + (1)) {
    tone(6,mylist[(int)(i - 1)]);
    delay(1000);
}
noTone(6);
delay(3000);
}


Mixly图形化编程程序
一闪一闪亮晶晶程序
(图形化程序)程序实现代码
float 基准音[]={1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5};
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};
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};
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,};
void setup(){
pinMode(6, OUTPUT);
}
void loop(){
for (int i = (1); i <= (sizeof(音符)/sizeof(音符)); i = i + (1)) {
    tone(6,基准音[(int)(音符[(int)(i - 1)] - 1)] * pow(2, 音调[(int)(i - 1)]));
    delay((500 * 节拍[(int)(i - 1)]));
    noTone(6);
    delay(10);
}
} 


页: [1]
查看完整版本: 基于Arduino使用频率可调蜂鸣器模块