99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

蜂鳴器驅(qū)動(dòng)原理與演奏音樂(lè)的2種方法

GReq_mcu168 ? 2017-12-25 10:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

電磁式蜂鳴器驅(qū)動(dòng)原理:

蜂鳴器發(fā)聲原理是電流通過(guò)電磁線(xiàn)圈,使電磁圈產(chǎn)生磁場(chǎng)來(lái)驅(qū)動(dòng)振動(dòng)膜發(fā)聲的。因此需要一定的電流才能驅(qū)動(dòng)它,而單片機(jī)I/O引腳輸出的電壓較小。單片機(jī)輸出的TTLK電平基本驅(qū)動(dòng)不了蜂鳴器,因需要增加一個(gè)放大電路。這里用三極管作為放大電路。下面是原理圖:

我這里的J8端是跟芯片的P1^5端口相連,當(dāng)P1^5輸出高電平時(shí),三極管截止,蜂鳴器不發(fā)聲,反之,輸出低電平時(shí),蜂鳴器發(fā)聲。

而要驅(qū)動(dòng)蜂鳴器能像唱歌一樣的發(fā)聲,其實(shí)只要使蜂鳴器發(fā)出頻率和持續(xù)時(shí)間不同的聲音即可。周期等于頻率的倒數(shù),所以可以通過(guò)頻率知道這段的時(shí)間,所以可以通過(guò)調(diào)用延時(shí)函數(shù)或者定時(shí)器實(shí)現(xiàn),同樣的發(fā)聲的持續(xù)時(shí)間也可以通過(guò)延時(shí)函數(shù)實(shí)現(xiàn),所以讓蜂鳴器唱歌最關(guān)鍵的就是知道要延長(zhǎng)多少時(shí)間!

用單片機(jī)來(lái)演奏音樂(lè),,只要搞清楚兩個(gè)概念就好了,分別是“音調(diào)”和“節(jié)拍”。

音調(diào)表示一個(gè)音符該唱的頻率。

節(jié)拍表示一個(gè)音符該唱多少時(shí)間。

這里有兩種方法來(lái)實(shí)現(xiàn)該功能:

(1)查表法

這個(gè)方法復(fù)雜的地方在于你要找出每個(gè)音符相對(duì)應(yīng)的頻率(根據(jù)音符;頻率對(duì)照表找),然后根據(jù)公式轉(zhuǎn)換為相應(yīng)的時(shí)間(取半周期),然后通過(guò)延時(shí)函數(shù)實(shí)現(xiàn)。最后編程實(shí)現(xiàn)。

整個(gè)流程是這樣的:

首先根據(jù)生日快樂(lè)歌的樂(lè)譜將各個(gè)音調(diào)轉(zhuǎn)換為相應(yīng)的頻率。

比如:左邊是生日快樂(lè)歌樂(lè)譜,右邊是音符頻率轉(zhuǎn)換表

蜂鳴器驅(qū)動(dòng)原理與演奏音樂(lè)的2種方法??????

這里先來(lái)了解一下樂(lè)譜的一點(diǎn)知識(shí),左邊樂(lè)譜數(shù)字下面有點(diǎn)說(shuō)明是低音,沒(méi)點(diǎn)說(shuō)明就是普通的,數(shù)字上面有點(diǎn)就是高音,而5的低音就是4.5,高音是5.5,其他音符也是相應(yīng)的道理。

樂(lè)譜的左上方有寫(xiě)“1=F”,而一般的樂(lè)譜都是C調(diào),就是“1=C”,注意,樂(lè)譜里面的1234567(哆啦咪發(fā)索拉西多)相對(duì)應(yīng)的不是ABCDEFG而是CDEFGAB!所以這里規(guī)定是F調(diào)的話(huà),

那么就說(shuō)明2就要唱G,3要唱A,……7要唱E,所以這里的低音5對(duì)應(yīng)的應(yīng)該是低音的1.5?。。。【褪撬^的要相應(yīng)的左移或者右移。如果還是不明白的話(huà),看下面:

1原本對(duì)應(yīng)的應(yīng)該是C,4原本應(yīng)該對(duì)應(yīng)的是F,對(duì)吧?

然后現(xiàn)在1對(duì)應(yīng)的變成F了,就相當(dāng)于對(duì)應(yīng)了4,對(duì)吧?

那么1.5對(duì)應(yīng)的是什么?

4.5咯!

那2對(duì)應(yīng)的是什么?

5唄!

那么好了咯,低音5是4.5,是不是就是等于1.5?所以半周期就是1803μs。

至于為什么是根據(jù)半周期算,那是因?yàn)閱纹瑱C(jī)是通過(guò)循環(huán)對(duì)蜂鳴器接的端口置位,復(fù)位來(lái)使發(fā)聲的,所以就是半周期。因?yàn)槲矣玫氖菬o(wú)源的蜂鳴器,有源的蜂鳴器就是全周期了。

然后就是按照上述道理,一個(gè)個(gè)轉(zhuǎn)換,并用延時(shí)函數(shù)實(shí)現(xiàn),因?yàn)槊總€(gè)音符的轉(zhuǎn)換頻率都不一樣,要么使用多個(gè)延時(shí)函數(shù)一個(gè)個(gè)實(shí)現(xiàn)準(zhǔn)確的音調(diào)頻率,但是這樣太煩,而且單片機(jī)本身就不是專(zhuān)門(mén)

弄來(lái)唱歌的。我們不應(yīng)該為難他們,所以自己將就一下就算了。所以延時(shí)函數(shù)為了適應(yīng)每個(gè)音調(diào)都有差不多的頻率,這個(gè)就靠自己計(jì)算了,而且不同的歌那個(gè)值還不一樣,所以這就是這個(gè)問(wèn)題

的難點(diǎn)。

接下來(lái)的就是那個(gè)唱多久的問(wèn)題,一般的歌曲默認(rèn)的一個(gè)節(jié)拍是400ms-500ms。

同樣的看樂(lè)譜左上方,它有寫(xiě)“3/4”,意思是以四分音符為節(jié)拍,每一個(gè)小結(jié)有三拍。

而在每個(gè)數(shù)字下面有一條橫線(xiàn),那時(shí)間就是那個(gè)節(jié)拍的時(shí)間乘上0.5,有兩條就乘上0.25,三條就乘以0.125。。。音樂(lè)的基本知識(shí)就別為難我了,我是個(gè)音樂(lè)白癡。。所以我就這么理解了。。

哈哈哈哈哈~

而至于節(jié)拍轉(zhuǎn)換為頻率,也是有相應(yīng)的表的,見(jiàn)下:

蜂鳴器驅(qū)動(dòng)原理與演奏音樂(lè)的2種方法

同樣的也是通過(guò)延時(shí)函數(shù)來(lái)實(shí)現(xiàn),當(dāng)然也是會(huì)有誤差的。

編程思想的話(huà)挺簡(jiǎn)單的,就是先將音符頻率和所要唱的時(shí)間轉(zhuǎn)換好,放到兩個(gè)數(shù)組里面。然后在主程序里面,通過(guò)延時(shí)達(dá)到相應(yīng)頻率,唱完一遍,停一會(huì),接著唱就好了。

(2)用工具轉(zhuǎn)碼并用計(jì)時(shí)器實(shí)現(xiàn)

這個(gè)代碼明顯的來(lái)自網(wǎng)絡(luò)。哈哈。原諒我,這個(gè)我就不說(shuō)明了。哎,還是再說(shuō)一下步驟吧。。(具體我也不是很懂,不同這個(gè)真的很通用,所以還是放到筆記上了。。)

一開(kāi)始就用MUSICENCODE這個(gè)將樂(lè)譜轉(zhuǎn)換為相應(yīng)的代碼,然后根據(jù)音調(diào)和音區(qū)生成一個(gè)新的頻率表。所謂的音區(qū)就是降調(diào),平調(diào),升調(diào),這個(gè)可以根據(jù)轉(zhuǎn)換的代碼相應(yīng)位得知。

再計(jì)算歌曲的長(zhǎng)度,用while就好,用來(lái)設(shè)置一首歌唱完之后再來(lái)一遍還是執(zhí)行其他動(dòng)作。

再取出數(shù)組數(shù)據(jù)的奇數(shù)位,那個(gè)就是表示音長(zhǎng)的。然后根據(jù)這個(gè)計(jì)算一個(gè)音調(diào)唱多久,并將初值賦給定時(shí)器。關(guān)于定時(shí)器的使用,之后會(huì)放出。

一個(gè)音調(diào)唱多久最好的方法就是設(shè)置一個(gè)基本時(shí)長(zhǎng),因?yàn)檫@個(gè)例子中,一個(gè)四分節(jié)拍大概是400ms-500ms,然后有的是1/4拍(100ms),有的2/4拍(200ms),所以就設(shè)置一個(gè)

50ms的定時(shí)器,調(diào)用的時(shí)候設(shè)置一下參數(shù)就好了。這樣做的好處就是方便。

接著調(diào)用函數(shù)讓它唱歌就好

比較一下這兩個(gè)方法的優(yōu)缺點(diǎn),第一種方法轉(zhuǎn)碼太復(fù)雜,不過(guò)聲音很好,分辨率高。第二種方法通用!不同的歌,你只要用工具轉(zhuǎn)一下碼,然后重新用個(gè)數(shù)組保存這些值,然后再通過(guò)

Play(樂(lè)曲名,調(diào)號(hào),升降八度,演奏速度)這個(gè)函數(shù)調(diào)用就好了,不過(guò)用這種方法實(shí)現(xiàn)的效果音質(zhì)不是很理想。其實(shí)最主要的是這種方法對(duì)音樂(lè)知識(shí)不理解也沒(méi)關(guān)系,而第一種方法還是

需要一定的知識(shí)來(lái)獲得正確的音調(diào)頻率和音長(zhǎng)。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650626
  • 蜂鳴器
    +關(guān)注

    關(guān)注

    12

    文章

    895

    瀏覽量

    46964

原文標(biāo)題:?jiǎn)纹瑱C(jī):蜂鳴器音樂(lè)播放實(shí)驗(yàn)

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用蜂鳴器和單片機(jī)演奏簡(jiǎn)單的音樂(lè)電路設(shè)計(jì)

    利用蜂鳴器和單片機(jī)演奏簡(jiǎn)單的音樂(lè),包含源程序代碼。
    發(fā)表于 04-03 12:59 ?1.1w次閱讀
    利用<b class='flag-5'>蜂鳴器</b>和單片機(jī)<b class='flag-5'>演奏</b>簡(jiǎn)單的<b class='flag-5'>音樂(lè)</b>電路設(shè)計(jì)

    音樂(lè)的播放(蜂鳴器);

    單片機(jī)控制技術(shù)+顯示輸出方法研究+音樂(lè)原理+蜂鳴器驅(qū)動(dòng)原理1)實(shí)現(xiàn)單音音音樂(lè)的播放(蜂鳴器);
    發(fā)表于 06-21 15:50

    各位,問(wèn)一個(gè)問(wèn)題,用蜂鳴器演奏流行音樂(lè)曲子,做成產(chǎn)品賣(mài)的話(huà),算侵權(quán)嗎?

    各位,問(wèn)一個(gè)問(wèn)題,用蜂鳴器演奏流行音樂(lè)曲子,做成產(chǎn)品賣(mài)的話(huà),算侵權(quán)嗎?
    發(fā)表于 01-22 11:09

    按鍵控制無(wú)源蜂鳴器發(fā)出不同聲音來(lái)演奏音樂(lè)

    cortex-A8用不同按鍵控制無(wú)源蜂鳴器發(fā)出不同聲音來(lái)演奏音樂(lè)的程序
    發(fā)表于 06-05 21:36

    如何用步進(jìn)電機(jī)演奏音樂(lè)?

    如何用步進(jìn)電機(jī)演奏音樂(lè)?
    發(fā)表于 11-19 06:17

    通過(guò)單片機(jī)演奏音樂(lè)

    /************************************************************************[文件名]C51音樂(lè)程序(八月桂花)[功能] 通過(guò)單片機(jī)演奏音樂(lè) 接線(xiàn)說(shuō)明:參考
    發(fā)表于 11-30 07:08

    如何利用Arduino與蜂鳴器實(shí)現(xiàn)音樂(lè)演奏

    如何利用Arduino與蜂鳴器實(shí)現(xiàn)音樂(lè)演奏呢?其程序代碼該怎樣去實(shí)現(xiàn)呢?
    發(fā)表于 02-14 07:22

    音樂(lè)演奏器設(shè)計(jì)

    音樂(lè)演奏器設(shè)計(jì) 一、任務(wù)設(shè)計(jì)并制作一個(gè)可以演奏樂(lè)曲的遠(yuǎn)程音樂(lè)演奏器,基本電路框圖如圖。
    發(fā)表于 08-02 08:35 ?1844次閱讀
    <b class='flag-5'>音樂(lè)演奏</b>器設(shè)計(jì)

    各種蜂鳴器的使用及其驅(qū)動(dòng)方法

    蜂鳴器?泛指一很會(huì)發(fā)出聲音的電聲器件,依據(jù)驅(qū)動(dòng)方法和結(jié)構(gòu)主要可以分為9。資料介紹了各種蜂鳴器
    發(fā)表于 01-20 14:45 ?86次下載

    eda音樂(lè)演奏程序

    EDA音樂(lè)演奏程序例程,可根據(jù)需要改編
    發(fā)表于 12-09 23:19 ?6次下載

    DSP硬件驅(qū)動(dòng)程序的一種方法

    DSP硬件驅(qū)動(dòng)程序的一種方法
    發(fā)表于 10-19 10:48 ?1次下載
    DSP硬件<b class='flag-5'>驅(qū)動(dòng)</b>程序的一<b class='flag-5'>種方法</b>

    MCU控制蜂鳴器演奏音樂(lè)小程序

    程序功能:MCU控制蜂鳴器演奏歌曲《祝你平安》 ,撥碼開(kāi)關(guān)設(shè)置:將BUZZER位撥至ON,其余位撥至OFF,測(cè)試說(shuō)明:聆聽(tīng)蜂鳴器“唱出”的樂(lè)曲 ,既然是演奏樂(lè)曲對(duì)于一個(gè)音符應(yīng)該包括兩個(gè)
    的頭像 發(fā)表于 04-20 09:17 ?7240次閱讀

    51單片機(jī)驅(qū)動(dòng)蜂鳴器演奏音樂(lè)的程序和蜂鳴器的原理及有源與無(wú)源的區(qū)別

    蜂鳴器發(fā)聲原理是電流通過(guò)電磁線(xiàn)圈,使電磁線(xiàn)圈產(chǎn)生磁場(chǎng)來(lái)驅(qū)動(dòng)振動(dòng)膜發(fā)聲的,因此需要一定的電流才能驅(qū)動(dòng)它,單片機(jī)IO引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動(dòng)不了
    發(fā)表于 09-20 17:19 ?5次下載
    51單片機(jī)<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>蜂鳴器</b><b class='flag-5'>演奏</b><b class='flag-5'>音樂(lè)</b>的程序和<b class='flag-5'>蜂鳴器</b>的原理及有源與無(wú)源的區(qū)別

    如何使用單片機(jī)進(jìn)行蜂鳴器演奏音樂(lè)的程序資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用單片機(jī)進(jìn)行蜂鳴器演奏音樂(lè)的程序資料免費(fèi)下載。
    發(fā)表于 05-05 08:00 ?9次下載
    如何使用單片機(jī)進(jìn)行<b class='flag-5'>蜂鳴器</b><b class='flag-5'>演奏</b><b class='flag-5'>音樂(lè)</b>的程序資料免費(fèi)下載

    利用蜂鳴器演奏簡(jiǎn)單的樂(lè)譜

    那么,今天分享的是利用蜂鳴器來(lái)演奏一些簡(jiǎn)單的樂(lè)譜。
    的頭像 發(fā)表于 05-26 16:04 ?3231次閱讀
    利用<b class='flag-5'>蜂鳴器</b><b class='flag-5'>演奏</b>簡(jiǎn)單的樂(lè)譜