您的位置 首页 测评

根据Arduino的电子音乐发声器规划

Arduino 是一块基于开放原始代码的Simple I/O平台,具有使用简单,功能多样,价格低廉等优点,广泛应用于电子系统设计和互动产品开发方面。系统以ArduinoUNO开发平台为控制核心,充分利

作者 赵云娥1 吴振强2 1.青海修建作业技能学院(青海 西宁 810012) 2.陕西师范大学计算机科学学院(陕西 西安 710119)

摘要Arduino 是一块根据敞开原始代码的Simple I/O渠道,具有运用简略,功用多样,价格低价等长处,广泛使用于电子体系规划和互动产品开发方面。体系以ArduinoUNO开发渠道为操控中心,充分利用其内部Tone 库,以数组方式安排乐曲的音高节拍数据,经过串口和外围无源蜂鸣器进行通讯,完成了电子音乐播映,随音乐节拍亮灭的LED为规划增加了温馨感。本体系本钱低价,可靠性高,可完成乐曲DIY,有杰出的扩展性。

导言

  Arduino 是一个根据敞开原始代码的Simple I/O渠道,由硬件(MCU及外围电路)和软件(编程接口和言语)两部分组成。它根据单片机体系开发,具有运用简略,功用多样,价格低价等长处,广泛使用于电子体系规划和互动产品开发方面。现在市场所见电子音乐发声器调理不便利,价格较高,不能很好地完成和运用者的交互。本电子音乐发声器的规划以ArduinoUNO板为操控中心,在相关乐理基础知识上,充分利用Arduino修改器自带Tone扩展库,以数组方式输出各音符的指定频率和节拍,送到无源蜂鸣器和五颜六色LED,完成了音乐播映和随音乐节奏亮灭的LED作用。在操作方面,能够经过简略修正数组数据(音高和节拍)完成电子音乐的DIY,在赏识美好音乐的一起,充分发挥运用者的创造性。

1 体系硬件规划

  本发声器以ArduinoUNO为操控中心,外部电路包括操控电路、蜂鸣器电路、LED显现节奏电路,体系硬件电路图如图1所示。开关S1对整个电路起操控作用,当检测到开关按下,即D3端口为高电平时,电路开端作业。预先安排好的音符数据(音高和节拍)经过数字端口D8发送到5V无源蜂鸣器J1,无源蜂鸣器接收到特定频率的(即特定的音高)方波去驱动它,能够宣布“Do Re Mi Fa Sol La Si”的音乐作用。各数据加上延时(即节拍数据)即可完成乐曲的播映。无源蜂鸣器的长处是声响频率可控,能够和LED复用一个操控口。所以,D8端口的数据一起加到LED1、LED2、LED3上时,其节奏性的亮灭完成了节拍的显现。

2 软件规划

2.1 乐曲播映原理

  2.1.1 单音符的演奏原理

  一首乐曲由若干音符组成。从物理的视点来说,每一个音符仅有对应一个发声频率。Arduino只需把这个频率数据发送给蜂鸣器或喇叭,就会宣布对应的音符。Arduino IDE自带的头文件“pitches.h”中以宏界说的方式给出了各个音符和频率的对应联系表。例如“#define NOTE_C4 262”句子给出了钢琴规范键盘小字一组C4(唱名为Do)按键对应的频率是262Hz。因而,只需能够辨认给定的曲谱,就能得到一组对应该乐曲的频率数据,即制造出其数组方式的韵律函数。

  2.1.2 节拍

  除了音高,构成旋律的另一个重要因素是节拍,即音符演奏的持续时间。它决议了音乐进行的快慢程度。本发声器的规划中,经过读取旋律的节拍速度,来确认根本的延时单位。如二分音符为一拍,每拍延时1/2秒,则四分音符延时1/4秒,八分音符延时为1/8秒,均为根本延时的偶数倍。终究,采用了noteDurations[thisNote]数组来寄存每个音符的节拍数据。在使用进程中,咱们也能够经过调理根本延时来调理乐曲速度。频率数据依照节拍数据的延时来驱动蜂鸣器,就完成了一首乐曲的播映。

2.2 乐曲播映的软件完成

  ArduinoIDE包括的Tone库能够很便利地协助用户制造音乐。本规划首要采用了Tone(pin, frequency, duration)函数来发生电子音乐。此函数中,pin表明频率数据的数字输出接口,int型;frequency是音符频率,int型;duration是节拍数据,单位是毫秒,unsigned long型。只需把上述频率和节拍数据接连赋值给Tone函数,就能够完成乐曲的播映,体系软件完成的程序流程图见图2。

  Arduino言语是以setup( )最初,loop( )作为主体的一个程序构架。本发声器的软件完成进程中, loop( )函数内部包括了操控按键判别函数,乐曲播映函数和延时函数。其间,乐曲播映函数play( )是发声器软件完成的中心句子,函数内一切句子循环往复地循环履行。下面以《生日快乐歌》(简谱见图3)的榜首末节为例,给出了play( )函数的完成进程。

  int melody[] = {

  NOTE_G4,//5

  NOTE_G4,//5

  NOTE_A4,//6

  NOTE_G4,//5

  NOTE_C5,//1.

  NOTE_B4,//7

  0,

  ……};

  int noteDurations[] = {

  8,8,4,4,4,4,

  4,

  ……

  };

  void play()

  {

  for (int thisNote = 0; thisNote < 29; thisNote++)

  {

  int noteDuration = 1000/noteDurations[thisNote];

  tone(8, melody[thisNote],noteDuration);

  int pauseBetweenNotes = noteDuration * 1.30;

  delay(pauseBetweenNotes);

  noTone(8);

  }}

3 定论

  本体系利用了现在较为盛行的Arduino电子互动渠道,经过对ARDUINO IDE渠道进行软件开发来操控外围部件,完成了电子音乐的播映和节奏的显现。Arduino是根据源代码的软硬件渠道,具有价格便宜,互动多样,支撑实时ISP在线烧录等特色。因而,本发声器价格低价,操作简略,修改便利,节拍速度能够调理,灵活性较高。该发声器功用能够进一步拓宽,假如运用者具有必定的音乐素质,能够完成电子音乐DIY,为日子增加趣味。

参考文献:

  [1]赵英杰.Arduino互动规划入门[M].北京:科学出版社,2014.

  [2]Michael McRoberts,Begin Arduino[M].杨继志,郭敬译.北京:电子工业出版社,2013.

  [3]杨继志,杨宇环.根据Arduino的网络互动产品立异规划[J].机电产品开发与立异,2012,25(1):99-100.

  [4]蔡睿妍.Arduino 的原理及使用[J].电子工程规划,2012,20(16):155-157.

  [5]赵云娥,陈学煌.根据AT89C51的电子节拍器规划[J].电子丈量技能,2008,31(3):176-179.

本文来源于《电子产品世界》2017年第2期第36页,欢迎您写论文时引证,并注明出处。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/205635.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部