566|3

22

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第3期】任务3:控制蜂鸣器播放音乐 [复制链接]

 

【得捷电子Follow me第3期】任务3:控制蜂鸣器播放音乐

 

 

 

任务3:控制蜂鸣器播放音乐(必做任务)

 

使用Seeed Studio XIAO ESP32C3控制蜂鸣器发出不同频率的声音,并播放一段音乐

 

搭配器件:Seeed Studio XIAO ESP32C3、Seeed Studio Expansion Board Base for XIAO

 

 

操作过程:

 

1.蜂鸣器播放音乐简单原理

 

大家都知道,声音源于震动,SEEED的扩展板上集成了一颗压电蜂鸣器,可以把电信号转换成相应频率的震动。

 

2.确定引脚

 

查看扩展板引脚图,得知蜂鸣器buzzer的引脚是A3,再结合XIAO C3的引脚图得知使用的引脚是GPIO5。

 

 

 

3.初始化PWM引脚。

 

引用PWM库,初始化频率为440hz。

from machine import PWM,Pin

beep = PWM(Pin(5),freq=440,duty=500)

点击运行,我们就可以听到持续的蜂鸣器的响声。

 

4.播放音乐。

 

从网上寻找一个同年经典游戏超级玛丽的音乐,移植到我们的XIAO C3上面,废话不多说,直接贴代码。

from machine import PWM,Pin

import time

import _thread

beep = PWM(Pin(5),freq=50000,duty=500)

#cdefgab

s2 = [50000,262 ,294, 330 ,349 ,392 ,220 ,247 ]

s3 = [50000,523,587,659,698,784,440,494]

s4 = [50000,1044, 1175 ,1318, 1397 ,1568 ,880 ,988]

def play(level,power = 1,deltatime = 200):

    if power == 0:

        beep.freq(s2[level])

    elif power == 1:

        beep.freq(s3[level])

    elif power == 2:

        beep.freq(s4[level])

    time.sleep_ms(deltatime)

    beep.freq(50000)

def plays(l):

    for i in l:

        if len(i) == 3:

            play(i[0],i[1],i[2])

        else:

            play(i[0],i[1])

def test():

    plays([(3,2),(3,2),(0,2),(3,2),(0,2),(1,2),(3,2),(0,2),(5,2),(0,2,500)])

    plays([(1,2,600),(5,1,600),(3,1,600),(6,1,400),(7,1,400),(7,1),(6,1,400)])

    plays([(5,1),(3,2,400),(5,2),(6,2,400),(4,2),(5,2,400),(3,2,400),(1,2),(2,2),(7,1)])

    plays([(1,2,600),(5,1,600),(3,1,600),(6,1,400),(7,1,400),(7,1),(6,1,400)])

    plays([(5,1),(3,2,400),(5,2),(6,2,400),(4,2),(5,2,400),(3,2,400),(1,2),(2,2),(7,1)])

_thread.start_new_thread(test,())

 

 

f8fb34c8c2624e8fe6c6b321aac02b1f

 

最新回复

转换一个乐曲的话,有相关的转换软件吗?就是把乐曲转换为对应的和频率有关的数据。   详情 回复 发表于 2023-11-27 09:33
点赞 关注
 
 

回复
举报

731

帖子

4

TA的资源

纯净的硅(高级)

沙发
 

先盛赞一下楼主,先收藏起来,慢慢研究研究,顶起来

 
 
 

回复

210

帖子

3

TA的资源

一粒金砂(高级)

板凳
 

转换一个乐曲的话,有相关的转换软件吗?就是把乐曲转换为对应的和频率有关的数据。

点评

替换相应的list就行,频率是跟音乐音符对应的,不用替换  详情 回复 发表于 2023-11-28 14:54
 
 
 

回复

22

帖子

3

TA的资源

一粒金砂(中级)

4
 
suncat 发表于 2023-11-27 09:33 转换一个乐曲的话,有相关的转换软件吗?就是把乐曲转换为对应的和频率有关的数据。

替换相应的list就行,频率是跟音乐音符对应的,不用替换

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表