這是一款簡易的音樂創作系統。使用 Arduino 驅動無源蜂鳴器和一排 LED 讓音樂起舞。它巧妙的使用了紅外遙控器作為琴鍵,通過編輯「樂譜」程序,來記錄和創作自己的音樂。
項目中還自帶了 Shape of you、Merry Christmas、Star wars、Game of Thrones 等經典流行音樂和電影、游戲原聲!
材料清單
Arduino UNO R3 x 1USB 連接線 x 1跳線 x 21紅色LED x 4綠色LED x 4黃色LED x 2無源蜂鳴器 x 1紅外接收器和遙控器 x 1220Ω 限流電阻器 x 4面包板 x 1
接線
連接 LED 燈和無源蜂鳴器
1、將 LED 燈和蜂鳴器安裝在面包板的同一行。
2、在 LED 燈左側的將 220Ω 限流電阻插入到面包板的 GND 中。
連接兩側的 LED 燈
1、將兩側的 LED 燈連接在一起,同時安裝 5 個電阻。
2、為了方便區分,使用與 LED 燈同色的跳線相連。
連接到 Arduino
1、使用五根跳線將 LED 燈的陽極連接到引腳
2、3、4、5、6。2、將無源蜂鳴器的 GND 引腳連接到面包板的 GND 上。
3、將無源蜂鳴器的正極引腳連接到 Arduino 的引腳 8 上。
4、將 IR 接收器插入面包板,并將信號引腳連接到面包板的引腳 9,將其 VCC 引腳連接到 5V 引腳,最后將 GND 引腳連接到面包板的 GND 上。
庫的介紹
項目中會使用兩個額外的庫:IRremote(用于處理紅外遠程信號) 和 toneAC(生成音調)。這些庫都需要安裝在 Arduino IDE 中。
常量和變量
該代碼定義了一些常量和變量:
IR_RECEIVER_PIN:連接 IR 接收器的引腳。
LED_PINS:連接到 LED 燈的引腳陣列。
BUZZER_PIN:引腳連接到蜂鳴器。
IRrecv IRrecv(IR_RECEIVER_PIN):用于接收和解碼 IR 信號的對象。
decode_resultsresults:用于存儲解碼的 IR 信號的變量。
tones:與音調相對應的一組頻率。
currentToneIndex:跟蹤當前播放的音調。
lastCommandTime:記錄最后一個 IR 命令的時間,避免快速重復的命令。
debounceDelay:防止由于噪聲或重復信號而快速觸發的延遲。
設置功能
設置功能初始化串行通信,設置 IR 接收器,將 LED 燈引腳配置為輸出,并執行初始 LED 燈閃爍以便獲得視覺反饋。
循環功能
環路功能持續檢查輸入的 IR 信號。如果接收到一個信號,會經過足夠長的去抖動的時間,然后打印信號的十六進制值,播放相應的樂音,并更新最后的命令時間。此外,它還觸發了按順序和反向閃爍 LED 燈的功能。
播放音調功能
playTone 功能將特定的 IR 遠程十六進制值映射到相應的音樂音調。當找到一個有效值時,它會通過蜂鳴器播放相關的音調。短暫暫停后,會移動到下一個音調。如果你想播放歌曲,你可以在 Arduino 相關網站上檢索,你會找到一些不錯的音樂,例如生日快樂歌和超級瑪麗主題曲。
閃爍 LED 燈的功能
LED 燈有三種閃爍的功能:
1、fashLEDs:按模式閃爍 LED 燈,表示指示代碼的開始。
2、flashLEDsSequence:按順序閃爍 LED 燈。
3、flashLEDsReverse:按相反方向閃爍 LED 燈。
播放歌曲
現在就可以開始播放歌曲啦,你已經掌握了音符,可以隨意嘗試代碼中的聲音和音調。你也可以將自己喜歡的歌曲添加到代碼中。
審核編輯:劉清
-
紅外遙控器
+關注
關注
3文章
133瀏覽量
21579 -
蜂鳴器
+關注
關注
12文章
887瀏覽量
45694 -
紅外接收器
+關注
關注
2文章
42瀏覽量
19029 -
Arduino
+關注
關注
187文章
6453瀏覽量
185947
原文標題:基于 Arduino 的音樂創作系統
文章出處:【微信號:趣無盡,微信公眾號:趣無盡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論