-- 喇叭接到D1和GND端即可
-- 播放音乐
function playMusic(pin, score)
print("Play music", #score)
local duration = 100 -- 播放时长
-- 遍历所有音符
for _,note in pairs(score) do
if(note < 0) then
duration = math.abs(note)
else
if(note > 0) then -- 大于0才播放
pwm.setup(pin, note, 1023)
pwm.setduty(pin, 1000)
end
tmr.delay(duration * 1000)
pwm.stop(pin)
end
end
pwm.close(pin)
print("Play finished.")
end
-- 初始化音符变量
-- 如C3,F4(中央C为C4,可简写为C)
function initNotes()
local RATES = {
131,147,165,175,196,220,247, -- 低音频率
262,294,330,349,392,440,493, -- 中音频率
523,587,659,698,784,880,988, -- 高音频率
}
local NOTES = {'C', 'D', 'E', 'F', 'G', 'A', 'B'}
for i=0,2 do
for j,note in pairs(NOTES) do
local name = note .. (i + 3)
_G[name] = RATES[i * 7 + j]
if(i == 1) then
_G[note] = _G[name]
end
end
end
end
initNotes()
-- 《两只老虎》乐谱
-- 0为休止符,负值为播放时长(的相反数)
local score = {
-400,C,D,E,C,C,D,E,C,
-400,E,F,G,0,E,F,G,0,
-200,G,A,G,F,-400,E,C,
-200,G,A,G,F,-400,E,C,
-400,D,G3,C,0,D,G3,C,0,
}
local PIN = 1 -- 管脚 D1
playMusic(PIN, score)
nodeMCU播放音乐《两只老虎》
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 上周末公映的《两只老虎》以高排片率和上座率拉开了今年贺岁电影档的序幕。 低配绑匪余凯旋(乔杉饰演)和淡定富豪张...