在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STEP FPGA驅(qū)動(dòng)無源蜂鳴器模塊

            STEP FPGA驅(qū)動(dòng)無源蜂鳴器模塊

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

            硬件說明

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

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

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

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


            本章節(jié)和大家一起學(xué)習(xí)無源蜂鳴器的驅(qū)動(dòng),F(xiàn)PGA或單片機(jī)的GPIO口驅(qū)動(dòng)能力弱,不能直接驅(qū)動(dòng)無源蜂鳴器,常用的蜂鳴器驅(qū)動(dòng)電路如下:

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

            我們使用PWM的方法(關(guān)于PWM的說明,快速入門中的脈沖發(fā)生器章節(jié)有詳細(xì)的介紹),使用計(jì)數(shù)器對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻,改變計(jì)數(shù)器的計(jì)數(shù)終值從而實(shí)現(xiàn)調(diào)節(jié)PWM信號(hào)頻率的目的,使用PWM信號(hào)控制蜂鳴器電路。


            Verilog代碼

            // --------------------------------------------------------------------
            // >>>>>>>>>>>>>>>>>>>>>>>>> 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,	//蜂鳴器使能信號(hào)
            input			[4:0]	tone,		//蜂鳴器音節(jié)控制
            output	reg				piano_out	//蜂鳴器控制輸出)
            ;
            /*
            無源蜂鳴器可以發(fā)出不同的音節(jié),與蜂鳴器震動(dòng)的頻率(等于蜂鳴器控制信號(hào)的頻率)相關(guān),
            為了讓蜂鳴器控制信號(hào)產(chǎn)生不同的頻率,我們使用計(jì)數(shù)器計(jì)數(shù)(分頻)實(shí)現(xiàn),不同的音節(jié)控制對(duì)應(yīng)不同的計(jì)數(shù)終值(分頻系數(shù))
            計(jì)數(shù)器根據(jù)計(jì)數(shù)終值計(jì)數(shù)并分頻,產(chǎn)生蜂鳴器控制信號(hào)
            */
            reg [15:0] time_end;//根據(jù)不同的音節(jié)控制,選擇對(duì)應(yīng)的計(jì)數(shù)終值(分頻系數(shù))
            //低音1的頻率為261.6Hz,蜂鳴器控制信號(hào)周期應(yīng)為12MHz/261.6Hz = 45871.5,
            //因?yàn)楸驹O(shè)計(jì)中蜂鳴器控制信號(hào)是按計(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)蜂鳴器控制信號(hào)
            	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

            小結(jié)

            本節(jié)主要為大家講解了蜂鳴器的不同類型及無源蜂鳴器的驅(qū)動(dòng)原理,需要大家掌握的同時(shí)自己創(chuàng)建工程,通過整個(gè)設(shè)計(jì)流程,生成FPGA配置文件加載測試。



            評(píng)論


            相關(guān)推薦

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

            關(guān)閉