色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 元件/連接器 > 設(shè)計(jì)應(yīng)用 > 基礎(chǔ)知識之Buzzer - 蜂鳴器

          基礎(chǔ)知識之Buzzer - 蜂鳴器

          作者: 時(shí)間:2024-03-27 來源:電子森林 收藏

          本文引用地址:http://cafeforensic.com/article/202403/456865.htm

          和LED常用于發(fā)光指示一樣,作為一種聲音模塊,常被用于做發(fā)聲的功能。有源通過內(nèi)置的振蕩器,發(fā)出單一固定頻率提示性報(bào)警聲音;無源是通過不同頻率的脈沖驅(qū)動,可以發(fā)出不同頻率的聲音信號。

          蜂鳴器的分類: 按其結(jié)構(gòu)主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型:

          • 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。
          • 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。多諧振蕩器由晶體管或集成電路構(gòu)成,當(dāng)接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~2.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。

          按是否帶有信號源分為有源蜂鳴器和無源蜂鳴器兩種類型:

          • 有源蜂鳴器只需要在其供電端加上額定直流電壓,其內(nèi)部的震蕩器就可以產(chǎn)生固定頻率的信號,驅(qū)動蜂鳴器發(fā)出聲音。
          • 無源蜂鳴器可以理解成與喇叭一樣,需要在其供電端上加上高低不斷變化的電信號才可以驅(qū)動發(fā)出聲音。

          本章節(jié)主要介紹無源蜂鳴器的驅(qū)動,F(xiàn)PGA或MCU的GPIO口驅(qū)動能力弱,不能直接驅(qū)動無源蜂鳴器,常用的蜂鳴器驅(qū)動電路如下:

          蜂鳴器使用NPN三極管(9013)驅(qū)動,三極管當(dāng)開關(guān)用,當(dāng)基極電壓拉高時(shí),蜂鳴器通電,當(dāng)基極電壓拉低時(shí),蜂鳴器斷電,MCU或FPGA控制GPIO口給三極管的基極輸出不同頻率的脈沖信號,蜂鳴器就可以發(fā)出不同的音節(jié)。 不同音節(jié)與蜂鳴器震蕩頻率的對應(yīng)關(guān)系如下:

          • Play Tones Using the PWM
          • Play Three Tones
          • Play a Scale
          • Play Mario on MicroPython
          • 播放音頻文件
          • 轉(zhuǎn)換MP3音頻文件為Wav文件
          • buzzer_music

          在FPGA中使用PWM來驅(qū)動蜂鳴器,使用計(jì)數(shù)器對系統(tǒng)時(shí)鐘進(jìn)行分頻,改變計(jì)數(shù)器的計(jì)數(shù)終值從而實(shí)現(xiàn)調(diào)節(jié)PWM信號頻率的目的,使用PWM信號控制蜂鳴器電路。

          // --------------------------------------------------------------------
          // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
          // --------------------------------------------------------------------
          // Module: Beeper// Author: Step// Description: Beeper
          // --------------------------------------------------------------------
          // Code Revision History :
          // --------------------------------------------------------------------
          // Version: |Mod. Date:   |Changes Made:
          // V1.0     |2016/04/20   |Initial ver
          // --------------------------------------------------------------------
          module Beeper(input clk_in, //系統(tǒng)時(shí)鐘
          input rst_n_in, //系統(tǒng)復(fù)位,低有效
          input tone_en, //蜂鳴器使能信號
          input [4:0] tone, //蜂鳴器音節(jié)控制
          output reg piano_out //蜂鳴器控制輸出); 
          /*
          無源蜂鳴器可以發(fā)出不同的音節(jié),與蜂鳴器震動的頻率(等于蜂鳴器控制信號的頻率)相關(guān),
          為了讓蜂鳴器控制信號產(chǎn)生不同的頻率,我們使用計(jì)數(shù)器計(jì)數(shù)(分頻)實(shí)現(xiàn),不同的音節(jié)控制對應(yīng)不同的計(jì)數(shù)終值(分頻系數(shù))
          計(jì)數(shù)器根據(jù)計(jì)數(shù)終值計(jì)數(shù)并分頻,產(chǎn)生蜂鳴器控制信號
          */ 
          reg [15:0] time_end;
          //根據(jù)不同的音節(jié)控制,選擇對應(yīng)的計(jì)數(shù)終值(分頻系數(shù))
          //低音1的頻率為261.6Hz,蜂鳴器控制信號周期應(yīng)為12MHz/261.6Hz = 45871.5,
          //因?yàn)楸驹O(shè)計(jì)中蜂鳴器控制信號是按計(jì)數(shù)器周期翻轉(zhuǎn)的,所以幾種終值 = 45871.5/2 = 22936
          //需要計(jì)數(shù)22936個(gè),計(jì)數(shù)范圍為0 ~ (22936-1),所以time_end = 22935
          always@(tone) begin
          case(tone)
          5'd1: time_end = 16'd22935; //L1,
          5'd2: time_end = 16'd20428; //L2,
          5'd3: time_end = 16'd18203; //L3,
          5'd4: time_end = 16'd17181; //L4,
          5'd5: time_end = 16'd15305; //L5,
          5'd6: time_end = 16'd13635; //L6,
          5'd7: time_end = 16'd12147; //L7,
          5'd8: time_end = 16'd11464; //M1,
          5'd9: time_end = 16'd10215; //M2,
          5'd10: time_end = 16'd9100; //M3,
          5'd11: time_end = 16'd8589; //M4,
          5'd12: time_end = 16'd7652; //M5,
          5'd13: time_end = 16'd6817; //M6,
          5'd14: time_end = 16'd6073; //M7,
          5'd15: time_end = 16'd5740; //H1,
          5'd16: time_end = 16'd5107; //H2,
          5'd17: time_end = 16'd4549; //H3,
          5'd18: time_end = 16'd4294; //H4,
          5'd19: time_end = 16'd3825; //H5,
          5'd20: time_end = 16'd3408; //H6,
          5'd21: time_end = 16'd3036; //H7,
          default:time_end = 16'd65535;
          endcaseend reg [17:0] time_cnt;//當(dāng)蜂鳴器使能時(shí),計(jì)數(shù)器按照計(jì)數(shù)終值(分頻系數(shù))計(jì)數(shù)
          always@(posedge clk_in or negedge rst_n_in) begin
          if(!rst_n_in) begin
          time_cnt <= 1'b0;
          end else if(!tone_en) begin
          time_cnt <= 1'b0;
          end else if(time_cnt>=time_end) begin
          time_cnt <= 1'b0;
          end else begin
          time_cnt <= time_cnt + 1'b1;
          endend //根據(jù)計(jì)數(shù)器的周期,翻轉(zhuǎn)蜂鳴器控制信號
          always@(posedge clk_in or negedge rst_n_in) begin
          if(!rst_n_in) begin
          piano_out <= 1'b0;
          end else if(time_cnt==time_end) begin
          piano_out <= ~piano_out; //蜂鳴器控制輸出翻轉(zhuǎn),兩次翻轉(zhuǎn)為1Hz
          end else begin
          piano_out <= piano_out;
          end
          end endmodule


          關(guān)鍵詞: 蜂鳴器

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉