差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
buzzer [2022/01/26 21:09]
gongyusu
buzzer [2022/02/06 16:53] (当前版本)
gongyusu
行 1: 行 1:
-## 蜂鸣器+## Buzzer - 蜂鸣器
 ### 1 介绍 ### 1 介绍
 +{{ :buzzer.jpg ?300 | }}
 +和LED常用于发光指示一样,作为一种声音模块,蜂鸣器常被用于做发声的功能。有源蜂鸣器通过内置的振荡器,发出单一固定频率提示性报警声音;无源蜂鸣器是通过不同频率的脉冲驱动,可以发出不同频率的声音信号。
  
 ### 2 工作原理 ### 2 工作原理
- 
-### 3 电路连接 
- 
-### 4 MicroPython编程(MCU) 
- 
-### 5 Verilog编程(FPGA) 
-### STEP FPGA驱动无源蜂鸣器模块 
- 
-本节将和大家一起使用FPGA驱动底板上的无源蜂鸣器模块实现不同音节的输出。 
- 
---- 
-#### 硬件说明 
- 
 蜂鸣器的分类: 蜂鸣器的分类:
-\\ 
-\\ 
 按其结构主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型: 按其结构主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型:
-\\ 
   * 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。   * 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
   * 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,​输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。   * 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,​输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
 +
 按是否带有信号源分为有源蜂鸣器和无源蜂鸣器两种类型: 按是否带有信号源分为有源蜂鸣器和无源蜂鸣器两种类型:
-\\ 
   * 有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。   * 有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。
   * 无源蜂鸣器可以理解成与喇叭一样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。   * 无源蜂鸣器可以理解成与喇叭一样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。
-\\ + 
-本章节和大家一起学习无源蜂鸣器的驱动,FPGA或单片机的GPIO口驱动能力弱,不能直接驱动无源蜂鸣器,常用的蜂鸣器驱动电路如下: +### 3 电路连接 
-\\+本章节主要介绍无源蜂鸣器的驱动,FPGA或MCU的GPIO口驱动能力弱,不能直接驱动无源蜂鸣器,常用的蜂鸣器驱动电路如下:
 {{ :​无源蜂鸣器驱动电路.jpg?​600 |}} {{ :​无源蜂鸣器驱动电路.jpg?​600 |}}
-\\ +蜂鸣器使用NPN三极管(9013)驱动,三极管当开关用,当基极电压拉高时,蜂鸣器通电,当基极电压拉低时,蜂鸣器断电,MCU或FPGA控制GPIO口给三极管的基极输出不同频率的脉冲信号,蜂鸣器就可以发出不同的音节。
-蜂鸣器使用NPN三极管(9013)驱动,三极管当开关用,当基极电压拉高时,蜂鸣器通电,当基极电压拉低时,蜂鸣器断电,FPGA控制GPIO口给三极管的基极输出不同频率的脉冲信号,蜂鸣器就可以发出不同的音节。 +
-\\+
 不同音节与蜂鸣器震荡频率的对应关系如下: 不同音节与蜂鸣器震荡频率的对应关系如下:
-\\ 
 {{ :​蜂鸣器音节频率.jpg?​800 |}} {{ :​蜂鸣器音节频率.jpg?​800 |}}
-\\ 
-我们使用PWM的方法(关于PWM的说明,快速入门中的[[脉冲发生器]]章节有详细的介绍),使用计数器对系统时钟进行分频,改变计数器的计数终值从而实现调节PWM信号频率的目的,使用PWM信号控制蜂鸣器电路。 
-\\ 
  
---- +### 4 MicroPython编程(MCU) 
-####Verilog代码+  * [[https://​www.coderdojotc.org/​micropython/​sound/​02-play-tone/|Play Tones Using the PWM]] 
 +  * [[https://​www.coderdojotc.org/​micropython/​sound/​03-play-three-tones/​|Play Three Tones]] 
 +  * [[https://​www.coderdojotc.org/​micropython/​sound/​04-play-scale/​|Play a Scale]] 
 +  * [[https://​www.coderdojotc.org/​micropython/​sound/​05-play-mario/​|Play Mario on MicroPython]] 
 +  * [[https://​www.coderdojotc.org/​micropython/​sound/​07-play-audio-file/​|播放音频文件]] 
 +  * [[https://​www.coderdojotc.org/​micropython/​sound/​09-converting-mp3-to-wav/​|转换MP3音频文件为Wav文件]] 
 +  * [[https://​github.com/​james1236/​buzzer_music|buzzer_music]] 
 + 
 + 
 +### Verilog编程(FPGA) 
 +在FPGA中使用PWM来驱动蜂鸣器,使用计数器对系统时钟进行分频,改变计数器的计数终值从而实现调节PWM信号频率的目的,使用PWM信号控制蜂鸣器电路。 
 <code verilog> <code verilog>
 // -------------------------------------------------------------------- // --------------------------------------------------------------------
行 48: 行 39:
 // -------------------------------------------------------------------- // --------------------------------------------------------------------
 // Module: Beeper // Module: Beeper
-//  
 // Author: Step // Author: Step
-//  
 // Description:​ Beeper // Description:​ Beeper
-//  
 // Web: www.stepfapga.com // Web: www.stepfapga.com
-//  
 // -------------------------------------------------------------------- // --------------------------------------------------------------------
 // Code Revision History : // Code Revision History :
行 69: 行 56:
 output reg piano_out //​蜂鸣器控制输出 output reg piano_out //​蜂鸣器控制输出
 ); );
 +
 /* /*
 无源蜂鸣器可以发出不同的音节,与蜂鸣器震动的频率(等于蜂鸣器控制信号的频率)相关, 无源蜂鸣器可以发出不同的音节,与蜂鸣器震动的频率(等于蜂鸣器控制信号的频率)相关,
行 74: 行 62:
 计数器根据计数终值计数并分频,产生蜂鸣器控制信号 计数器根据计数终值计数并分频,产生蜂鸣器控制信号
 */ */
 +
 reg [15:0] time_end; reg [15:0] time_end;
 //​根据不同的音节控制,选择对应的计数终值(分频系数) //​根据不同的音节控制,选择对应的计数终值(分频系数)