資料介紹
摘要:Arduino 是一塊基于開放原始代碼的Simple I/O平臺(tái),具有使用簡(jiǎn)單,功能多樣,價(jià)格低廉等優(yōu)點(diǎn),廣泛應(yīng)用于電子系統(tǒng)設(shè)計(jì)和互動(dòng)產(chǎn)品開發(fā)方面。系統(tǒng)以ArduinoUNO開發(fā)平臺(tái)為控制核心,充分利用其內(nèi)部Tone 庫(kù),以數(shù)組形式組織樂曲的音高和節(jié)拍數(shù)據(jù),通過(guò)串口和外圍無(wú)源蜂鳴器進(jìn)行通信,實(shí)現(xiàn)了電子音樂播放,隨音樂節(jié)拍亮滅的LED為設(shè)計(jì)添加了溫馨感。本系統(tǒng)成本低廉,可靠性高,可實(shí)現(xiàn)樂曲DIY,有良好的擴(kuò)展性。
引言
Arduino是一個(gè)基于開放原始代碼的Simple I/O平臺(tái),由硬件(MCU及外圍電路)和軟件(編程接口和語(yǔ)言)兩部分組成。它基于單片機(jī)系統(tǒng)開發(fā),具有使用簡(jiǎn)單,功能多樣,價(jià)格低廉等優(yōu)點(diǎn),廣泛應(yīng)用于電子系統(tǒng)設(shè)計(jì)和互動(dòng)產(chǎn)品開發(fā)方面。目前市場(chǎng)所見電子音樂發(fā)聲器調(diào)節(jié)不便,價(jià)格較高,不能很好地實(shí)現(xiàn)和使用者的交互。本電子音樂發(fā)聲器的設(shè)計(jì)以ArduinoUNO板為控制核心,在相關(guān)樂理基礎(chǔ)知識(shí)上,充分利用Arduino編輯器自帶Tone擴(kuò)展庫(kù),以數(shù)組形式輸出各音符的指定頻率和節(jié)拍,送到無(wú)源蜂鳴器和彩色LED,實(shí)現(xiàn)了音樂播放和隨音樂節(jié)奏亮滅的LED效果。在操作方面,可以通過(guò)簡(jiǎn)單修改數(shù)組數(shù)據(jù)(音高和節(jié)拍)實(shí)現(xiàn)電子音樂的DIY,在欣賞美妙音樂的同時(shí),充分發(fā)揮使用者的創(chuàng)造性。
1 系統(tǒng)硬件設(shè)計(jì)
本發(fā)聲器以ArduinoUNO為控制核心,外部電路包括控制電路、蜂鳴器電路、LED顯示節(jié)奏電路,系統(tǒng)硬件電路圖如圖1所示。開關(guān)S1對(duì)整個(gè)電路起控制作用,當(dāng)檢測(cè)到開關(guān)按下,即D3端口為高電平時(shí),電路開始工作。預(yù)先組織好的音符數(shù)據(jù)(音高和節(jié)拍)通過(guò)數(shù)字端口D8發(fā)送到5V無(wú)源蜂鳴器J1,無(wú)源蜂鳴器接收到特定頻率的(即特定的音高)方波去驅(qū)動(dòng)它,可以發(fā)出“Do Re Mi Fa Sol La Si”的音樂效果。各數(shù)據(jù)加上延時(shí)(即節(jié)拍數(shù)據(jù))即可實(shí)現(xiàn)樂曲的播放。無(wú)源蜂鳴器的優(yōu)點(diǎn)是聲音頻率可控,可以和LED復(fù)用一個(gè)控制口。所以,D8端口的數(shù)據(jù)同時(shí)加到LED1、LED2、LED3上時(shí),其節(jié)奏性的亮滅實(shí)現(xiàn)了節(jié)拍的顯示。

2 軟件設(shè)計(jì)
2.1 樂曲播放原理
2.1.1 單音符的演奏原理
一首樂曲由若干音符組成。從物理的角度來(lái)說(shuō),每一個(gè)音符唯一對(duì)應(yīng)一個(gè)發(fā)聲頻率。Arduino只要把這個(gè)頻率數(shù)據(jù)發(fā)送給蜂鳴器或喇叭,就會(huì)發(fā)出對(duì)應(yīng)的音符。Arduino IDE自帶的頭文件“pitches.h”中以宏定義的形式給出了各個(gè)音符和頻率的對(duì)應(yīng)關(guān)系表。例如“#define NOTE_C4 262”語(yǔ)句給出了鋼琴標(biāo)準(zhǔn)鍵盤小字一組C4(唱名為Do)按鍵對(duì)應(yīng)的頻率是262Hz。因此,只要能夠識(shí)別給定的樂譜,就能得到一組對(duì)應(yīng)該樂曲的頻率數(shù)據(jù),即制作出其數(shù)組形式的韻律函數(shù)。
2.1.2 節(jié)拍
除了音高,構(gòu)成旋律的另一個(gè)重要因素是節(jié)拍,即音符演奏的持續(xù)時(shí)間。它決定了音樂進(jìn)行的快慢程度。本發(fā)聲器的設(shè)計(jì)中,通過(guò)讀取旋律的節(jié)拍速度,來(lái)確定基本的延時(shí)單位。如二分音符為一拍,每拍延時(shí)1/2秒,則四分音符延時(shí)1/4秒,八分音符延時(shí)為1/8秒,均為基本延時(shí)的偶數(shù)倍。最終,采用了noteDurations[thisNote]數(shù)組來(lái)存放每個(gè)音符的節(jié)拍數(shù)據(jù)。在應(yīng)用過(guò)程中,我們也可以通過(guò)調(diào)節(jié)基本延時(shí)來(lái)調(diào)節(jié)樂曲速度。頻率數(shù)據(jù)按照節(jié)拍數(shù)據(jù)的延時(shí)來(lái)驅(qū)動(dòng)蜂鳴器,就實(shí)現(xiàn)了一首樂曲的播放。

2.2 樂曲播放的軟件實(shí)現(xiàn)
ArduinoIDE包含的Tone庫(kù)可以很方便地幫助用戶制作音樂。本設(shè)計(jì)主要采用了Tone(pin, frequency, duration)函數(shù)來(lái)產(chǎn)生電子音樂。此函數(shù)中,pin表示頻率數(shù)據(jù)的數(shù)字輸出接口,int型;frequency是音符頻率,int型;duration是節(jié)拍數(shù)據(jù),單位是毫秒,unsigned long型。只要把上述頻率和節(jié)拍數(shù)據(jù)連續(xù)賦值給Tone函數(shù),就可以實(shí)現(xiàn)樂曲的播放,系統(tǒng)軟件實(shí)現(xiàn)的程序流程圖見圖2。
Arduino語(yǔ)言是以setup( )開頭,loop( )作為主體的一個(gè)程序構(gòu)架。本發(fā)聲器的軟件實(shí)現(xiàn)過(guò)程中, loop( )函數(shù)內(nèi)部包含了控制按鍵判斷函數(shù),樂曲播放函數(shù)和延時(shí)函數(shù)。其中,樂曲播放函數(shù)play( )是發(fā)聲器軟件實(shí)現(xiàn)的核心語(yǔ)句,函數(shù)內(nèi)所有語(yǔ)句周而復(fù)始地循環(huán)執(zhí)行。下面以《生日快樂歌》(簡(jiǎn)譜見圖3)的第一小節(jié)為例,給出了play( )函數(shù)的實(shí)現(xiàn)過(guò)程。
引言
Arduino是一個(gè)基于開放原始代碼的Simple I/O平臺(tái),由硬件(MCU及外圍電路)和軟件(編程接口和語(yǔ)言)兩部分組成。它基于單片機(jī)系統(tǒng)開發(fā),具有使用簡(jiǎn)單,功能多樣,價(jià)格低廉等優(yōu)點(diǎn),廣泛應(yīng)用于電子系統(tǒng)設(shè)計(jì)和互動(dòng)產(chǎn)品開發(fā)方面。目前市場(chǎng)所見電子音樂發(fā)聲器調(diào)節(jié)不便,價(jià)格較高,不能很好地實(shí)現(xiàn)和使用者的交互。本電子音樂發(fā)聲器的設(shè)計(jì)以ArduinoUNO板為控制核心,在相關(guān)樂理基礎(chǔ)知識(shí)上,充分利用Arduino編輯器自帶Tone擴(kuò)展庫(kù),以數(shù)組形式輸出各音符的指定頻率和節(jié)拍,送到無(wú)源蜂鳴器和彩色LED,實(shí)現(xiàn)了音樂播放和隨音樂節(jié)奏亮滅的LED效果。在操作方面,可以通過(guò)簡(jiǎn)單修改數(shù)組數(shù)據(jù)(音高和節(jié)拍)實(shí)現(xiàn)電子音樂的DIY,在欣賞美妙音樂的同時(shí),充分發(fā)揮使用者的創(chuàng)造性。
1 系統(tǒng)硬件設(shè)計(jì)
本發(fā)聲器以ArduinoUNO為控制核心,外部電路包括控制電路、蜂鳴器電路、LED顯示節(jié)奏電路,系統(tǒng)硬件電路圖如圖1所示。開關(guān)S1對(duì)整個(gè)電路起控制作用,當(dāng)檢測(cè)到開關(guān)按下,即D3端口為高電平時(shí),電路開始工作。預(yù)先組織好的音符數(shù)據(jù)(音高和節(jié)拍)通過(guò)數(shù)字端口D8發(fā)送到5V無(wú)源蜂鳴器J1,無(wú)源蜂鳴器接收到特定頻率的(即特定的音高)方波去驅(qū)動(dòng)它,可以發(fā)出“Do Re Mi Fa Sol La Si”的音樂效果。各數(shù)據(jù)加上延時(shí)(即節(jié)拍數(shù)據(jù))即可實(shí)現(xiàn)樂曲的播放。無(wú)源蜂鳴器的優(yōu)點(diǎn)是聲音頻率可控,可以和LED復(fù)用一個(gè)控制口。所以,D8端口的數(shù)據(jù)同時(shí)加到LED1、LED2、LED3上時(shí),其節(jié)奏性的亮滅實(shí)現(xiàn)了節(jié)拍的顯示。

2 軟件設(shè)計(jì)
2.1 樂曲播放原理
2.1.1 單音符的演奏原理
一首樂曲由若干音符組成。從物理的角度來(lái)說(shuō),每一個(gè)音符唯一對(duì)應(yīng)一個(gè)發(fā)聲頻率。Arduino只要把這個(gè)頻率數(shù)據(jù)發(fā)送給蜂鳴器或喇叭,就會(huì)發(fā)出對(duì)應(yīng)的音符。Arduino IDE自帶的頭文件“pitches.h”中以宏定義的形式給出了各個(gè)音符和頻率的對(duì)應(yīng)關(guān)系表。例如“#define NOTE_C4 262”語(yǔ)句給出了鋼琴標(biāo)準(zhǔn)鍵盤小字一組C4(唱名為Do)按鍵對(duì)應(yīng)的頻率是262Hz。因此,只要能夠識(shí)別給定的樂譜,就能得到一組對(duì)應(yīng)該樂曲的頻率數(shù)據(jù),即制作出其數(shù)組形式的韻律函數(shù)。
2.1.2 節(jié)拍
除了音高,構(gòu)成旋律的另一個(gè)重要因素是節(jié)拍,即音符演奏的持續(xù)時(shí)間。它決定了音樂進(jìn)行的快慢程度。本發(fā)聲器的設(shè)計(jì)中,通過(guò)讀取旋律的節(jié)拍速度,來(lái)確定基本的延時(shí)單位。如二分音符為一拍,每拍延時(shí)1/2秒,則四分音符延時(shí)1/4秒,八分音符延時(shí)為1/8秒,均為基本延時(shí)的偶數(shù)倍。最終,采用了noteDurations[thisNote]數(shù)組來(lái)存放每個(gè)音符的節(jié)拍數(shù)據(jù)。在應(yīng)用過(guò)程中,我們也可以通過(guò)調(diào)節(jié)基本延時(shí)來(lái)調(diào)節(jié)樂曲速度。頻率數(shù)據(jù)按照節(jié)拍數(shù)據(jù)的延時(shí)來(lái)驅(qū)動(dòng)蜂鳴器,就實(shí)現(xiàn)了一首樂曲的播放。

2.2 樂曲播放的軟件實(shí)現(xiàn)
ArduinoIDE包含的Tone庫(kù)可以很方便地幫助用戶制作音樂。本設(shè)計(jì)主要采用了Tone(pin, frequency, duration)函數(shù)來(lái)產(chǎn)生電子音樂。此函數(shù)中,pin表示頻率數(shù)據(jù)的數(shù)字輸出接口,int型;frequency是音符頻率,int型;duration是節(jié)拍數(shù)據(jù),單位是毫秒,unsigned long型。只要把上述頻率和節(jié)拍數(shù)據(jù)連續(xù)賦值給Tone函數(shù),就可以實(shí)現(xiàn)樂曲的播放,系統(tǒng)軟件實(shí)現(xiàn)的程序流程圖見圖2。
Arduino語(yǔ)言是以setup( )開頭,loop( )作為主體的一個(gè)程序構(gòu)架。本發(fā)聲器的軟件實(shí)現(xiàn)過(guò)程中, loop( )函數(shù)內(nèi)部包含了控制按鍵判斷函數(shù),樂曲播放函數(shù)和延時(shí)函數(shù)。其中,樂曲播放函數(shù)play( )是發(fā)聲器軟件實(shí)現(xiàn)的核心語(yǔ)句,函數(shù)內(nèi)所有語(yǔ)句周而復(fù)始地循環(huán)執(zhí)行。下面以《生日快樂歌》(簡(jiǎn)譜見圖3)的第一小節(jié)為例,給出了play( )函數(shù)的實(shí)現(xiàn)過(guò)程。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- AY-3-8910發(fā)聲器開源(Arduino Nano控制)
- 基于單片機(jī)電子音樂Proteus仿真程序 1次下載
- 基于AT89C51單片機(jī)按鍵選播電子音樂Proteus仿真及程序 7次下載
- 51單片機(jī)程序設(shè)計(jì)——電子音樂盒
- 使用單片機(jī)設(shè)計(jì)電子音樂門鈴的程序免費(fèi)下載 28次下載
- 使用單片機(jī)實(shí)現(xiàn)按鍵選播電子音樂的程序和仿真資料免費(fèi)下載 27次下載
- 使用單片機(jī)按鍵選播電子音樂的proteus仿真電路圖 21次下載
- 單片機(jī)播放電子音樂的程序資料免費(fèi)下載 5次下載
- 基于8051的Proteus仿真-按鍵選播電子音樂 17次下載
- 無(wú)源蜂鳴器設(shè)計(jì)電子音樂 0次下載
- 多功能電子音樂霓虹燈顯示裝置
- 按鍵選播電子音樂(基于8051+Proteus仿真)
- 用單片機(jī)設(shè)計(jì)電子音樂門鈴
- 電子音樂門鈴對(duì)講雙用計(jì)電路及制作
- 電子音樂盒設(shè)計(jì)
- 蜂鳴器的發(fā)聲原理 蜂鳴器電路圖分享 2.5w次閱讀
- 基于Arduino的音樂創(chuàng)作系統(tǒng)設(shè)計(jì) 2.2k次閱讀
- 電力變壓器保護(hù)設(shè)計(jì)方案 1.5k次閱讀
- DIY電子調(diào)頻閃爍燈電路 2.2k次閱讀
- 節(jié)拍器聲音發(fā)生器的電子電路圖 3.4k次閱讀
- 帶有觸摸開關(guān)和定時(shí)器的音樂鈴電路圖 3.7k次閱讀
- 如何利用Arduino UNO和SD卡制作音樂播放器 1w次閱讀
- 如何使用通用單片機(jī)制作MIDI鍵盤 8k次閱讀
- 蜂鳴器的發(fā)聲原理及選型時(shí)的參數(shù)注意 2.4w次閱讀
- 工程師制作電子音樂木管樂器 3.8k次閱讀
- 電子電路設(shè)計(jì)方案的步驟和注意事項(xiàng) 1.7w次閱讀
- 使用51單片機(jī)設(shè)計(jì)倒計(jì)時(shí)發(fā)聲器的資料概述 6.2k次閱讀
- 無(wú)線語(yǔ)音門鈴怎么樣?無(wú)線語(yǔ)音門鈴工作原理淺析 5.6k次閱讀
- 三路搶答器電路設(shè)計(jì)方案匯總(三款模擬電路設(shè)計(jì)原理圖詳解) 8.9w次閱讀
- 帶柔性開關(guān)的報(bào)警發(fā)聲器 2.6k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 2安川A1000變頻器中文版說(shuō)明書
- 20.16 MB | 3次下載 | 3 積分
- 3直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費(fèi)
- 4丹佛斯2800系列變頻器說(shuō)明書
- 8.00 MB | 1次下載 | 5 積分
- 5PC8011同步開關(guān)型降壓3.5A單節(jié)鋰電池充電管理電路技術(shù)手冊(cè)
- 0.74 MB | 1次下載 | 免費(fèi)
- 6ES7243E+ES8311音頻錄制與播放電路資料
- 0.06 MB | 1次下載 | 5 積分
- 7SDM02 激光測(cè)距模塊產(chǎn)品手冊(cè)
- 0.43 MB | 1次下載 | 免費(fèi)
- 8SDFM 激光測(cè)距模塊模組手冊(cè)
- 0.54 MB | 1次下載 | 免費(fèi)
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場(chǎng)分析及創(chuàng)新應(yīng)用
- 3.11 MB | 43次下載 | 免費(fèi)
- 3RV1126B系列開發(fā)板產(chǎn)品資料
- 4.19 MB | 18次下載 | 免費(fèi)
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發(fā)板 四核異構(gòu)、3路千兆網(wǎng),賦能多元化工業(yè)場(chǎng)景
- 3.05 MB | 12次下載 | 免費(fèi)
- 6【開源】60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目案例及入門學(xué)習(xí)資源包
- 10.55 MB | 8次下載 | 免費(fèi)
- 7冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機(jī)主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191448次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論