? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?門鈴? ? ? ?
?? ? ? ? ? ? ? ?
一昏名、模塊
? ? ? ? 門鈴的米思奇模塊:當(dāng)以管腳2位數(shù)字輸入管腳時,管腳8首先發(fā)出頻率為NOTE_E5的的聲音勺馆,延時0.5s后春畔,該管腳繼續(xù)發(fā)出NOTE_C5的頻率,并延遲0.5后再管腳8出截止。從而剪短的發(fā)出兩個頻率不同的聲音质和。,實現(xiàn)門鈴的效果稚字。
二饲宿、函數(shù)語法
①tone()
tone()函數(shù)可以產(chǎn)生固定頻率的PWM信號來驅(qū)動揚(yáng)聲器發(fā)聲。
②notone()
notone()函數(shù)可以停止發(fā)聲胆描。
③tone(pin,frequency,duration)
1)pin:發(fā)聲引腳(此引腳需要連接發(fā)聲器)
2)frequency:發(fā)聲頻率(單位赫茲)
3)duration:發(fā)聲時長(單位:微秒瘫想,此參?數(shù)為可選參數(shù))
三、代碼
? ? ? ? 門鈴代碼:這一段代碼分為兩部分袄友,一部分是規(guī)定輸入引腳2和結(jié)束引腳8殿托;第二部分是規(guī)定一個循環(huán)函數(shù),當(dāng)引腳2輸入電子信號時剧蚣,發(fā)出兩個頻率不同的聲音支竹,并且各聲音之間存在0.5S的延遲(前文已經(jīng)介紹),最后以notone()函數(shù)結(jié)束發(fā)聲鸠按。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?兩只老虎
一礼搁、如何編寫旋律
(1)音級基準(zhǔn)頻率(do、re目尖、……馒吴、si)(如圖2-1中 tonelist 從do到si的對應(yīng)頻率關(guān)系)
(2)頻率變化
? ? ? ?跨八度(簡譜中的“高音點(diǎn)兒”、“低音點(diǎn)兒”)(如圖2-2中真奇怪瑟曲,真奇怪的奇的so的下面就是低音點(diǎn))
? ? ? ?因為兩只老虎的樂譜中沒有高音點(diǎn)所以在定義這種跨八度的關(guān)系是在highlist中表現(xiàn)的饮戳。
? ? ? ?臨時變化音(#、b號)
(3)每個音的音名(音高)
(4)每個音的時值(長短)
? ? ? ?兩只老虎整體是四四拍洞拨,但是不是代表四個音級就是4拍扯罐,在這里一個音級可以是一拍,如下圖中只有單一的音級表示旋律的烦衣,一個音級可以是兩拍歹河,如下圖印記后面帶著橫杠掩浙,就代表此音級為兩拍,而一個音級可以表示半拍和另一個音級共同構(gòu)成一拍秸歧,像兩個節(jié)拍下面劃橫線的就表示兩個音級構(gòu)成一拍厨姚。所以說每個音級的播放時間是不同的。也就是如圖2-1rhythmlist表示音級的播放時間的定義键菱。
(4)頻率與音高的關(guān)系
? ? ?標(biāo)準(zhǔn)音A的頻率為440Hz
? ? ?每個八度頻率相差一倍谬墙,如:
? ? ?鋼琴鍵上相鄰兩個音(如C~#C)的頻率關(guān)系:
(5)初始化模塊圖
二、如何構(gòu)造主體函數(shù)
三经备、進(jìn)行調(diào)試和運(yùn)行
8管腳輸出芭梯,2管腳輸入。
四甩牺、創(chuàng)客傳遞
大家可以用這個小程序蘑志,把自己喜歡的歌曲編寫出來。期待你們的分享贬派。