arduino蜂鸣器音乐代码_STM32驱动蜂鸣器演奏音乐“你笑起来真好看”

本文介绍了有源和无源蜂鸣器的区别,重点讲解了单片机如何使用无源蜂鸣器驱动音乐播放。通过理解音符和节拍的概念,结合代码示例,展示了如何利用STM32驱动蜂鸣器演奏《你笑起来真好看》的乐谱。
摘要由CSDN通过智能技术生成

4c99d3d3-3115-eb11-8da9-e4434bdf6706.png

有源蜂鸣器与无源蜂鸣器的区别

这里的“源”不是指电源,而是指震荡源。

内部自带震荡源的为有源蜂鸣器,给电就能响,但是响的频率是固定的,即响的声音是固定的。

内部没有震荡源的为无源蜂鸣器,给直流电不能响,需要提供一定频率的脉冲信号才能够有响声,而且声音随着频率的变化而变化。

所以我们要想实现蜂鸣器演奏音乐的话,只能选用无源蜂鸣器。

单片机驱动蜂鸣器发声原理" class="reference-link">单片机驱动蜂鸣器发声原理

单片机上面使用的蜂鸣器一般都是无源电磁式的蜂鸣器。它由外壳、振动膜片、磁铁、电磁线圈、及振荡器等组成。

接通电源后,电流通过电磁线圈,致使电磁线圈工作产生磁场,振动膜片在磁铁以及电磁线圈的相互作用下,周期性地振动发出一定频率的声音。

单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要设计一个电流放大的电路,具体实现如下图所示。

4d99d3d3-3115-eb11-8da9-e4434bdf6706.png

有源蜂鸣器和无源蜂鸣器的驱动电路是一样的,都是如上图所示。

有源蜂鸣器,只需要改变Buzzer(PB9)引脚的高低电平即可控制蜂鸣器。
当Buzzer引脚为低电平的时候,三极管导通,蜂鸣器响;
当Buzzer引脚为高电平的时候,三极管截止,蜂鸣器不响。

注意此处使用的蜂鸣器为3.3V/5V兼容版本的蜂鸣器。

无源蜂鸣器,Buzzer引脚要提供一个脉冲信号才能响。下面封装了一个输入参数为频率的无源蜂鸣器驱动函数。

频率的倒数即是时间,然后此处计算的是T/2的时间,所以为1秒钟是1000000us,一半即500000&#x

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值