我是靠谱客的博主 聪明芝麻,最近开发中收集的这篇文章主要介绍arduino无源蜂鸣器歌曲编码_基于Arduino使用低电平触发无源蜂鸣器模块,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

蜂鸣器模块

我们可以使用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使用低电平触发无源蜂鸣器模块所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部