發布日期:2022-04-17 點擊率:11
引言
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。因此,只要能夠識別給定的樂譜,就能得到一組對應該樂曲的頻率數據,即制作出其數組形式的韻律函數。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV