簡介
我們已經(jīng)看到一些使用Arduino的面向應(yīng)用的項目,如心率監(jiān)測,機械臂,家庭自動化等有時候,我們只為了8x8x8 LED Cube,計算機手勢控制等項目而開展項目。
基于Arduino的鋼琴項目屬于有趣的項目類別,你知道,這個項目沒有任何真實世界的應(yīng)用程序(至少不是直接的),但可以用來理解Arduino的某些功能(就像它使用音調(diào)的聲音產(chǎn)生能力) ()功能)。
盡管如此,聲音和音調(diào)可以提供很好的音頻我們的項目中有反饋意見。
如何制作基于Arduino的鋼琴?
而不是詢問如何制作基于Arduino的鋼琴,正確的問題應(yīng)該是如何使用Arduino生成不同的音調(diào)。我們知道Arduino能夠產(chǎn)生PWM信號。
我將使用Arduino的這個功能來產(chǎn)生音調(diào)。使用Arduino生成音調(diào)的另一種方法是使用函數(shù)tone()函數(shù)。
使用tone()函數(shù),您可以生成不同頻率但具有固定值的方波周期(50%)。在內(nèi)部,tone()函數(shù)依賴于Arduino的定時器(或更準(zhǔn)確的ATmega328P微控制器)。
電路圖
下圖顯示了使用Arduino進(jìn)行鋼琴應(yīng)用的電路圖。從電路圖中可以看出,它是一個相當(dāng)簡單的電路。
所需組件
Arduino UNO
按鈕X 8
小壓電蜂鳴器(或小型揚聲器)
連接電線
面包板
Arduino Piano電路的設(shè)計非常簡單。首先,將5V壓電蜂鳴器(即其正極端子)連接到Arduino的引腳10。您必須將Piezo蜂鳴器連接到Arduino的一個PWM引腳。 Piezo蜂鳴器的另一端連接到GND。
現(xiàn)在,將7個按鈕連接到Arduino的數(shù)字I/O引腳3到9。這些引腳用作音調(diào)輸入引腳。我使用了Arduino的INTERNAL PULL UP功能,因此我沒有將任何外部上拉電阻連接到這些引腳。
這些按鈕的所有其他端子都是連接到GND。最后,另一個按鈕連接到Arduino的引腳2,作為中斷引腳。此按鈕的另一端也連接到GND。
我使用了板載LED(連接到引腳13的LED)來指示常規(guī)音調(diào)播放和錄制的音調(diào)之間播放。
代碼
項目代碼如何制作基于Arduino的鋼琴如下所示。
工作
按照電路圖進(jìn)行連接,并將代碼上傳到Arduino。一旦打開電路電源,Arduino就可以接受來自按鈕的輸入。
每個按鈕都與代碼中的PWM信號相關(guān)聯(lián)。按下按鈕時,通過壓電式蜂鳴器產(chǎn)生特定的PWM信號。
現(xiàn)在,對于錄制和重復(fù)模式,使用不同的按鈕播放幾個音調(diào)。按下每個按鈕,Arduino開始錄制,即記下按鈕的順序,開啟時間和關(guān)閉時間。
完成音調(diào)后,您可以按下中斷按鈕。一旦Arduino進(jìn)入中斷模式,所有先前按下的音調(diào)將通過壓電蜂鳴器播放。
在正常音調(diào)播放期間,即按下按鈕時,LED在引腳13上保持ON。在重復(fù)模式期間,它保持關(guān)閉狀態(tài)。
這里要理解的重點是我沒有使用Arduino的tone()函數(shù)。您可以嘗試使用該功能生成不同頻率的聲音。
結(jié)論
A有趣的DIY項目名為Arduino的鋼琴在這里實施。這個項目有助于理解Arduino的聲音功能。雖然我沒有使用tone()函數(shù),但您可以使用該函數(shù)實現(xiàn)相同的結(jié)果。
-
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192180
發(fā)布評論請先 登錄
免費分享Arduino入門+進(jìn)階(全套例程+書籍)

評論