传感器实验——无源蜂鸣器

无源蜂鸣器利用电磁感应现象,为音圈接入交变电流后形成的电磁铁与永磁铁相吸或相斥而推动振膜发声,接入直流电只能持续推动振膜而无法产生声音,只能在接通或断开时产生声音。我们之前用过有源蜂鸣器,这次来弄无源的。


蜂鸣器实验

所选设备

MR开发板
在这里插入图片描述

蜂鸣器(不爱换图,有源无源自己买的时候自己看doge)

在这里插入图片描述

传感器原理

1、蜂鸣器的发声原理由振动装置和谐振装置组成,而蜂鸣器又分为无源他激型与有源自激型。

2、无源他激型蜂鸣器的工作发声原理是:方波信号输入谐振装置转换为声音信号输出。

3、有源自激型蜂鸣器的工作发声原理是:直流电源输入经过振荡系统的放大取样电路在谐振装置作用下产生声音信号。

本次我们使用无源蜂鸣器,这个时候我们就要用到DAC(数模转换)

接线说明

开发板蜂鸣器
3.3VVCC
X5(A4)I/O
GNDGND

基本案例

from pyb import Pin,DAC

dac=DAC(Pin('X5'))   #设置DAC输入引脚
dac.write()           #设置输出电压,默认8位模式,参数范围0~255

上面是定义引脚

示例代码:按键控制蜂鸣器(图没换,线看引脚图啊!)

在这里插入图片描述

Created with Raphaël 2.2.0 导入模块 设置GPIO 按下按键播放‘’歌曲‘’ 播放自定义‘’歌曲‘’ yes
#导入相关模块
from pyb import DAC,Pin,ExtInt
from machine import Pin
import time

#初始化相关模块
dac = DAC(1)     #定义DAC对象名字为dac,输出引脚为X5

#do re mi fa so la si
play1=[523,587,659,698,784,880]
playlist=play1

# 定义8位精度下方波的值。0、255分别对应输出0V、3.3V。需要定义成字节数组。
buf = bytearray(2)
buf[0]=0
buf[1]=255

temshow=0.5
# 定义了速度,2秒演奏一个音

#播放函数
def playstart():
    for num in playlist:
        pl(num)
        
#延时函数
def pl(hz):
    dac.write_timed(buf, hz*len(buf), mode=DAC.CIRCULAR)
    time.sleep(temshow)


callback=lambda e:playstart()  #中断用法
ext=ExtInt(Pin('X17'),ExtInt.IRQ_FALLING,Pin.PULL_UP,callback)
#do re mi fa so la si
play1=[523,587,659,698,784,880] #看这里对应频率可以发出对应的响声哦。

频率对应的声音,可以自己试试哦。
在这里插入图片描述
比如《天空之城》
在这里插入图片描述

相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页