700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 物联网开发笔记(42)- 使用Micropython开发ESP32开发板之控制蜂鸣器

物联网开发笔记(42)- 使用Micropython开发ESP32开发板之控制蜂鸣器

时间:2021-02-05 04:53:19

相关推荐

物联网开发笔记(42)- 使用Micropython开发ESP32开发板之控制蜂鸣器

一、目的

这一节我们学习如何使用我们的ESP32开发板来控制有源蜂鸣器和无源蜂鸣器。

二、环境

ESP32 + 有源蜂鸣器和无源蜂鸣器 + Thonny IDE + 几根杜邦线

接线方法:

蜂鸣器介绍:

三、代码

有源蜂鸣器:

from machine import Pinimport time# 创建对象p15 = Pin(15, Pin.OUT)# 滴滴响10次for i in range(7):p15.value(1) # 高电平不响time.sleep(0.5)p15.value(0) # 低电平出发,响time.sleep(0.5)p15.value(1) # 关闭

无源蜂鸣器:

from machine import Pinfrom machine import PWMfrom time import sleep_ms# 创建一个类class BUZZER:def __init__(self, sig_pin):self.pwm = PWM(Pin(sig_pin, Pin.OUT)) # 创建PWM对象,用来控制无源蜂鸣器# 定义一个播放函数def play(self, melodies, wait, duty): # 定义播放的音乐,等待的时间,占空比for note in melodies:print("note:{}".format(note))if note:self.pwm.freq(note)self.pwm.duty(duty)sleep_ms(wait)# 暂停PWM,将占空比设置为0self.pwm.duty(0)# 音符与对应的的频率B0 = 31C1 = 33CS1 = 35D1 = 37DS1 = 39E1 = 41F1 = 44FS1 = 46G1 = 49GS1 = 52A1 = 55AS1 = 58B1 = 62C2 = 65CS2 = 69D2 = 73DS2 = 78E2 = 82F2 = 87FS2 = 93G2 = 98GS2 = 104A2 = 110AS2 = 117B2 = 123C3 = 131CS3 = 139D3 = 147DS3 = 156E3 = 165F3 = 175FS3 = 185G3 = 196GS3 = 208A3 = 220AS3 = 233B3 = 247C4 = 262CS4 = 277D4 = 294DS4 = 311E4 = 330F4 = 349FS4 = 370G4 = 392GS4 = 415A4 = 440AS4 = 466B4 = 494C5 = 523CS5 = 554D5 = 587DS5 = 622E5 = 659F5 = 698FS5 = 740G5 = 784GS5 = 831A5 = 880AS5 = 932B5 = 988C6 = 1047CS6 = 1109D6 = 1175DS6 = 1245E6 = 1319F6 = 1397FS6 = 1480G6 = 1568GS6 = 1661A6 = 1760AS6 = 1865B6 = 1976C7 = 2093CS7 = 2217D7 = 2349DS7 = 2489E7 = 2637F7 = 2794FS7 = 2960G7 = 3136GS7 = 3322A7 = 3520AS7 = 3729B7 = 3951C8 = 4186CS8 = 4435D8 = 4699DS8 = 4978# 第一首,超级马里奥乐谱mario = [E7, E7, 0, E7, 0, C7, E7, 0,G7, 0, 0, 0, G6, 0, 0, 0,C7, 0, 0, G6, 0, 0, E6, 0,0, A6, 0, B6, 0, AS6, A6, 0,G6, E7, 0, G7, A7, 0, F7, G7,0, E7, 0, C7, D7, B6, 0, 0,C7, 0, 0, G6, 0, 0, E6, 0,0, A6, 0, B6, 0, AS6, A6, 0,G6, E7, 0, G7, A7, 0, F7, G7,0, E7, 0, C7, D7, B6, 0, 0,]# 第二首,jingle bellsjingle = [E7, E7, E7, 0,E7, E7, E7, 0,E7, G7, C7, D7, E7, 0,F7, F7, F7, F7, F7, E7, E7, E7, E7, D7, D7, E7, D7, 0, G7, 0,E7, E7, E7, 0,E7, E7, E7, 0,E7, G7, C7, D7, E7, 0,F7, F7, F7, F7, F7, E7, E7, E7, G7, G7, F7, D7, C7, 0]# 初始化蜂鸣器对象buzzer = BUZZER(15)print("播放 超级马里奥")buzzer.play(mario, 150, 512)sleep_ms(1000)print("播放 jingle bells.")buzzer.play(jingle, 250, 512)sleep_ms(1000)

四、演示效果

有源蜂鸣器:

通电后就响,使用程序控制可以关闭。

无源蜂鸣器:

五、蜂鸣器购买

同样,我在TB搜到了,链接如下:

/item.htm?spm=a1z10.3-b.w4011-23212844728.24.61e931e5JFu7J8&id=641431206619&rn=59bcb8815367b89541d45069ecca8859&abbucket=8

一 模块描述

1 模块采用S8550三极管驱动

2 工作电压3.3V-5V

3 设有固定螺栓孔,方便安装

4 小板PCB尺寸:3.2cm * 1.3cm

5 当I/O口输入低电平时,蜂鸣器发声

二 模块接口说明(3线制)

1 VCC 外接3.3V-5V电压(可以直接与5v单片机和3.3v单片机相连)

2 GND 外接GND

3 I/O 外接单片机IO口

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。