概述
蜂鸣器模块
我们可以使用Arduino进行很多互动作品,其中最常用的是声光显示器。之前的所有实验都与LED有关。但是,这个实验中的电路可以产生声音。通常,实验是通过蜂鸣器或扬声器完成的,而蜂鸣器更简单且更易于使用。
有源蜂鸣器与无源蜂鸣器
有源蜂鸣器与无源蜂鸣器有什么区别。这里的“源”不是指电源。而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用 2K~5K 的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。
(低电平触发无源蜂鸣器模块)
我们在这里介绍的蜂鸣器是一种被动式蜂鸣器。它不能由其自身驱动,而是由外部脉冲频率驱动。不同的频率产生不同的声音 我们可以使用Arduino来编码歌曲的旋律,这实际上非常有趣和简单。
产品参数
小板PCB尺寸:32mm*14mm
采用S8550三级管驱动
工作电压:3.3V-5V
设有固定螺栓孔,方面安装
当I/O口输入低电平时,蜂鸣器发声
接线方式
(低电平触发无源蜂鸣器模块 正面)
蜂鸣器 Arduino Nano
GND GND
I/O 9
VCC 3.3V
程序测试——蜂鸣器发出声音
蜂鸣器处于低电平时,会发出声音,而处于高电平,停止声音发出,即不发出声音。编写蜂鸣器声音响一秒再停一秒,以此来检测蜂鸣器是否能正常发出声音
Mixly图形化编程程序
(蜂鸣器发出声音程序)
程序实现代码
蜂鸣器发出声音void setup(){
pinMode(9, OUTPUT);
}
void loop(){
digitalWrite(9,LOW);
delay(1000);
digitalWrite(9,HIGH);
delay(1000);
}
蜂鸣器制作音乐小案例——两只老虎
七声音阶音乐盒应用编写了音乐中的七个基准音(do、re、mi、fa、sol、la、si),这七个基准音对应的频率数组为:1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5。
使用步长模块与数组模块,让蜂鸣器首先能发出七个基准音,七个基准音声音发出之后,停顿5秒,再次循环播放七个基准音。
Mixly图形化编程程序
(蜂鸣器发出七个基准音程序)
程序实现代码float tonelist[]={1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5};
void setup(){
pinMode(9, OUTPUT);
}
void loop(){
for (int i = 1; i <=7; i = i + (1)) {
tone(9,tonelist[(int)(i - 1)]);
delay(1000);
}
noTone(9);
digitalWrite(9,HIGH);
delay(5000);
}
(两只老虎简谱)
根据简谱,也可对两只老虎的音符、节拍、高音与低音音调设置数值,然后再编程程序。
Mixly图形化编程程序
(两只老虎总程序)
程序实现代码volatile float speed;
volatile long updown;
float tonelist[]={1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5};
longmusiclist[]={1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,4,3,1,5,6,5,4,3,1,2,5,1,2,5,1};
longhighlist[]={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,-1,0,0,-1,0};
long updownlist[]={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,0,0,0,0};
floatrhythmlist[]={1,1,1,1,1,1,1,1,1,1,2,1,1,2,0.5,0.5,0.5,0.5,1,1,0.5,0.5,0.5,0.5,1,1,1,1,2,1,1,2};
void setup(){
speed = 120.0;
updown = 0;
pinMode(9, OUTPUT);
}
void loop(){
for (int i = 1; i <=32; i = i + (1)) {
tone(9,(tonelist[(int)(musiclist[(int)(i - 1)] - 1)] * pow(2,highlist[(int)(i - 1)])) * pow(2, (updownlist[(int)(i - 1)] + updown) / 12.0));
delay(((1000 * (60 /speed)) * rhythmlist[(int)(i - 1)]));
noTone(9);
digitalWrite(9,HIGH);
delay(10);
}
}
最后
以上就是聪明芝麻为你收集整理的arduino无源蜂鸣器歌曲编码_基于Arduino使用低电平触发无源蜂鸣器模块的全部内容,希望文章能够帮你解决arduino无源蜂鸣器歌曲编码_基于Arduino使用低电平触发无源蜂鸣器模块所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复