视觉识别模块
0、学前先看&供电说明
1、固件下载与烧录
2、安装编程环境
3、调试运行例程
4、离线运行例程
5、Micropython 快速入门
6、GUI程序使用说明
7、二维云台安装教程
8、FPIOA引脚分配
9、RGB灯
10、蜂鸣器
11、按键
12、串口通信
13、I2C通讯
14、PWM
15、WDT看门狗
16、定时器计时
17、傅里叶变换
18、SHA256加密
19、AES加密
20、多线程
21、文件读写
22、图像显示
23、触摸显示
24、摄像头显示
25、图像翻转
26、照相机
27、绘制圆形
28、绘制矩形
29、绘制椭圆
30、绘制箭头
31、绘制十字准心
32、绘制文字
汝城县职业中等专业学校知识库-信息中心朱老师编辑
-
+
首页
10、蜂鸣器
 ## 简介 本节我们来学习如何使用代码控制 YAHBOOM K230上面的 蜂鸣器 > 蜂鸣器是一种可以发出蜂鸣声音的电子元器件。 > > 它通过电磁或压电原理产生声音, 常应用于各种电子设备中,常见于警报器、电子玩具、电子信号装置等。 ## 快速开始 我们打开 CanMV IDE,将 K230 连接至电脑。 按 Ctrl + N 键新建一份代码,并删除所有自动生成的代码内容 复制下面的代码并粘贴到IDE中 \[源码汇总 / 02.Basic / 03.1\_buzzer.py\] \# 导入蜂鸣器库 (Import buzzer library) from ybUtils.YbBuzzer import YbBuzzer \# 导入时间库 (Import time library) import time \# 创建蜂鸣器实例 (Create buzzer instance) buzzer = YbBuzzer() \# 示例1:短鸣一声 (Example 1: Short beep) buzzer.beep() \# 使用默认参数发出蜂鸣声 (Make a beep with default parameters) \# 等待3秒 (Wait for 3 seconds) time.sleep(3) \# 示例2:自定义频率和持续时间 (Example 2: Custom frequency and duration) buzzer.on(2000, 50, 0.5) \# 2000Hz,音量50%,持续0.5秒 (2000Hz, volume 50%, duration 0.5 seconds) \# 等待3秒 (Wait for 3 seconds) time.sleep(3) \# 示例3:警报声效果 (Example 3: Alarm sound effect) for i in range(3): \# 循环3次 (Loop 3 times) buzzer.on(1000, 50, 0.1) \# 1000Hz,音量50%,持续0.1秒 (1000Hz, volume 50%, duration 0.1 seconds) time.sleep(0.1) \# 短暂停顿0.1秒 (Brief pause for 0.1 seconds) 点击运行按钮,可以听到K230的蜂鸣器中发出了不同的声音 ## 播放旋律 K230模块上的蜂鸣器是无源蜂鸣器,连接在 K230的一个PWM输出通道上。 > PWM相关的内容我们会在后续教程中详细讲解 我们可以通过修改 PWM 输出值,来让蜂鸣器发出不同频率的声音 下面是用无源蜂鸣器模拟演奏音符的代码 \[ 源码汇总 / 02.Basic / 03.2\_twinkle\_twinkle.py \] \# 导入蜂鸣器库 (Import buzzer library) from ybUtils.YbBuzzer import YbBuzzer \# 导入时间库 (Import time library) import time \# 创建蜂鸣器实例 (Create buzzer instance) buzzer = YbBuzzer() \# 定义音符频率(Hz)(Define note frequencies in Hz) C5 = 523 \# 1 - 中央C (Middle C) D5 = 587 \# 2 - 中央D (Middle D) E5 = 659 \# 3 - 中央E (Middle E) F5 = 698 \# 4 - 中央F (Middle F) G5 = 784 \# 5 - 中央G (Middle G) A5 = 880 \# 6 - 中央A (Middle A) B5 = 988 \# 7 - 中央B (Middle B) \# 定义音符持续时间 (Define note duration) BEAT = 0.3 \# 一拍的时间(单位:秒)(Duration of one beat in seconds) \# 演奏旋律 (Play melody) def play\_twinkle(): """ 演奏《一闪一闪亮晶晶》(小星星)的旋律 (Play the melody of "Twinkle Twinkle Little Star") """ \# 一闪一闪亮晶晶的音符序列 (Note sequence for "Twinkle Twinkle Little Star") notes = \[ (C5, BEAT), (C5, BEAT), (G5, BEAT), (G5, BEAT), \# 1 1 5 5 (音乐简谱:小星星) (A5, BEAT), (A5, BEAT), (G5, BEAT\*2), \# 6 6 5- (亮晶晶) (F5, BEAT), (F5, BEAT), (E5, BEAT), (E5, BEAT), \# 4 4 3 3 (满天都是) (D5, BEAT), (D5, BEAT), (C5, BEAT\*2), \# 2 2 1- (小星星) \] \# 遍历音符列表并演奏 (Iterate through the notes list and play) for freq, duration in notes: \# 播放当前音符 (Play current note) \# 参数:频率、音量50%、持续时间 (Parameters: frequency, volume 50%, duration) buzzer.on(freq, 50, duration) \# 音符之间的短暂停顿,增加清晰度 (Brief pause between notes for clarity) time.sleep(0.1) \# 结束后关闭蜂鸣器 (Turn off the buzzer after playing) buzzer.off() \# 程序入口点 (Program entry point) if \_\_name\_\_ == "\_\_main\_\_": \# 调用函数演奏旋律 (Call function to play the melody) play\_twinkle() ## 蜂鸣器的分类 上面我们提到了无源蜂鸣器,这里我们来简单介绍一下蜂鸣器的分类 从驱动方式来说,我们可以把蜂鸣器分为有源和无源两种 **有源蜂鸣器(Active Buzzer)** 是内部集成有振荡电路的蜂鸣器。它不需要外部驱动电路,只需要输入一个直流电源就能直接发出声音。有源蜂鸣器结构相对简单,适合小型化设计,常见于电子玩具、报警器等对体积和功耗有要求的场合。 **无源蜂鸣器(Passive Buzzer)**是不包含振荡电路的蜂鸣器,需要外部驱动电路提供交流信号才能工作。适合大功率、大声音应用,如汽车喇叭、工业警报器等。外部驱动电路可以是单片机、专用驱动芯片等,根据应用需求设计。 使用无源蜂鸣器的优点是可以通过调整外部信号的频率和占空比来实现更丰富的音调和音量控制。
admin
2025年12月30日 14:10
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期
AI