色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

蜂鳴器驅動原理與演奏音樂的2種方法

GReq_mcu168 ? 2017-12-25 10:51 ? 次閱讀

電磁式蜂鳴器驅動原理:

蜂鳴器發聲原理是電流通過電磁線圈,使電磁圈產生磁場來驅動振動膜發聲的。因此需要一定的電流才能驅動它,而單片機I/O引腳輸出的電壓較小。單片機輸出的TTLK電平基本驅動不了蜂鳴器,因需要增加一個放大電路。這里用三極管作為放大電路。下面是原理圖:

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

而要驅動蜂鳴器能像唱歌一樣的發聲,其實只要使蜂鳴器發出頻率和持續時間不同的聲音即可。周期等于頻率的倒數,所以可以通過頻率知道這段的時間,所以可以通過調用延時函數或者定時器實現,同樣的發聲的持續時間也可以通過延時函數實現,所以讓蜂鳴器唱歌最關鍵的就是知道要延長多少時間!

用單片機來演奏音樂,,只要搞清楚兩個概念就好了,分別是“音調”和“節拍”。

音調表示一個音符該唱的頻率。

節拍表示一個音符該唱多少時間。

這里有兩種方法來實現該功能:

(1)查表法

這個方法復雜的地方在于你要找出每個音符相對應的頻率(根據音符;頻率對照表找),然后根據公式轉換為相應的時間(取半周期),然后通過延時函數實現。最后編程實現。

整個流程是這樣的:

首先根據生日快樂歌的樂譜將各個音調轉換為相應的頻率。

比如:左邊是生日快樂歌樂譜,右邊是音符頻率轉換表

蜂鳴器驅動原理與演奏音樂的2種方法??????

這里先來了解一下樂譜的一點知識,左邊樂譜數字下面有點說明是低音,沒點說明就是普通的,數字上面有點就是高音,而5的低音就是4.5,高音是5.5,其他音符也是相應的道理。

樂譜的左上方有寫“1=F”,而一般的樂譜都是C調,就是“1=C”,注意,樂譜里面的1234567(哆啦咪發索拉西多)相對應的不是ABCDEFG而是CDEFGAB!所以這里規定是F調的話,

那么就說明2就要唱G,3要唱A,……7要唱E,所以這里的低音5對應的應該是低音的1.5!!!!就是所謂的要相應的左移或者右移。如果還是不明白的話,看下面:

1原本對應的應該是C,4原本應該對應的是F,對吧?

然后現在1對應的變成F了,就相當于對應了4,對吧?

那么1.5對應的是什么?

4.5咯!

那2對應的是什么?

5唄!

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

至于為什么是根據半周期算,那是因為單片機是通過循環對蜂鳴器接的端口置位,復位來使發聲的,所以就是半周期。因為我用的是無源的蜂鳴器,有源的蜂鳴器就是全周期了。

然后就是按照上述道理,一個個轉換,并用延時函數實現,因為每個音符的轉換頻率都不一樣,要么使用多個延時函數一個個實現準確的音調頻率,但是這樣太煩,而且單片機本身就不是專門

弄來唱歌的。我們不應該為難他們,所以自己將就一下就算了。所以延時函數為了適應每個音調都有差不多的頻率,這個就靠自己計算了,而且不同的歌那個值還不一樣,所以這就是這個問題

的難點。

接下來的就是那個唱多久的問題,一般的歌曲默認的一個節拍是400ms-500ms。

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

而在每個數字下面有一條橫線,那時間就是那個節拍的時間乘上0.5,有兩條就乘上0.25,三條就乘以0.125。。。音樂的基本知識就別為難我了,我是個音樂白癡。。所以我就這么理解了。。

哈哈哈哈哈~

而至于節拍轉換為頻率,也是有相應的表的,見下:

蜂鳴器驅動原理與演奏音樂的2種方法

同樣的也是通過延時函數來實現,當然也是會有誤差的。

編程思想的話挺簡單的,就是先將音符頻率和所要唱的時間轉換好,放到兩個數組里面。然后在主程序里面,通過延時達到相應頻率,唱完一遍,停一會,接著唱就好了。

(2)用工具轉碼并用計時器實現

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

一開始就用MUSICENCODE這個將樂譜轉換為相應的代碼,然后根據音調和音區生成一個新的頻率表。所謂的音區就是降調,平調,升調,這個可以根據轉換的代碼相應位得知。

再計算歌曲的長度,用while就好,用來設置一首歌唱完之后再來一遍還是執行其他動作。

再取出數組數據的奇數位,那個就是表示音長的。然后根據這個計算一個音調唱多久,并將初值賦給定時器。關于定時器的使用,之后會放出。

一個音調唱多久最好的方法就是設置一個基本時長,因為這個例子中,一個四分節拍大概是400ms-500ms,然后有的是1/4拍(100ms),有的2/4拍(200ms),所以就設置一個

50ms的定時器,調用的時候設置一下參數就好了。這樣做的好處就是方便。

接著調用函數讓它唱歌就好

比較一下這兩個方法的優缺點,第一種方法轉碼太復雜,不過聲音很好,分辨率高。第二種方法通用!不同的歌,你只要用工具轉一下碼,然后重新用個數組保存這些值,然后再通過

Play(樂曲名,調號,升降八度,演奏速度)這個函數調用就好了,不過用這種方法實現的效果音質不是很理想。其實最主要的是這種方法對音樂知識不理解也沒關系,而第一種方法還是

需要一定的知識來獲得正確的音調頻率和音長。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6050

    文章

    44687

    瀏覽量

    641186
  • 蜂鳴器
    +關注

    關注

    12

    文章

    893

    瀏覽量

    46237

原文標題:單片機:蜂鳴器音樂播放實驗

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    利用蜂鳴器和單片機演奏簡單的音樂電路設計

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

    音樂的播放(蜂鳴器);

    單片機控制技術+顯示輸出方法研究+音樂原理+蜂鳴器驅動原理1)實現單音音音樂的播放(蜂鳴器);
    發表于 06-21 15:50

    各位,問一個問題,用蜂鳴器演奏流行音樂曲子,做成產品賣的話,算侵權嗎?

    各位,問一個問題,用蜂鳴器演奏流行音樂曲子,做成產品賣的話,算侵權嗎?
    發表于 01-22 11:09

    按鍵控制無源蜂鳴器發出不同聲音來演奏音樂

    cortex-A8用不同按鍵控制無源蜂鳴器發出不同聲音來演奏音樂的程序
    發表于 06-05 21:36

    如何用步進電機演奏音樂

    如何用步進電機演奏音樂
    發表于 11-19 06:17

    如何去實現一基于51單片機的音樂盒設計

    一.硬件方案本設計以51單片機原理和控制理論設計音樂演奏控制器的硬件電路,并利用C語言進行程序設計。通過控制單片機內部的定時器來產生不同頻率的方波,驅動蜂鳴器發出不同音調的音樂,再利用
    發表于 11-19 06:07

    通過單片機演奏音樂

    /************************************************************************[文件名]C51音樂程序(八月桂花)[功能] 通過單片機演奏音樂 接線說明:參考
    發表于 11-30 07:08

    如何利用Arduino與蜂鳴器實現音樂演奏

    如何利用Arduino與蜂鳴器實現音樂演奏呢?其程序代碼該怎樣去實現呢?
    發表于 02-14 07:22

    音樂演奏器設計

    音樂演奏器設計 一、任務設計并制作一個可以演奏樂曲的遠程音樂演奏器,基本電路框圖如圖。
    發表于 08-02 08:35 ?1795次閱讀
    <b class='flag-5'>音樂演奏</b>器設計

    各種蜂鳴器的使用及其驅動方法

    蜂鳴器?泛指一很會發出聲音的電聲器件,依據驅動方法和結構主要可以分為9。資料介紹了各種蜂鳴器
    發表于 01-20 14:45 ?86次下載

    eda音樂演奏程序

    EDA音樂演奏程序例程,可根據需要改編
    發表于 12-09 23:19 ?6次下載

    MCU控制蜂鳴器演奏音樂小程序

    程序功能:MCU控制蜂鳴器演奏歌曲《祝你平安》 ,撥碼開關設置:將BUZZER位撥至ON,其余位撥至OFF,測試說明:聆聽蜂鳴器“唱出”的樂曲 ,既然是演奏樂曲對于一個音符應該包括兩個
    的頭像 發表于 04-20 09:17 ?7068次閱讀

    51單片機驅動蜂鳴器演奏音樂的程序和蜂鳴器的原理及有源與無源的區別

    蜂鳴器發聲原理是電流通過電磁線圈,使電磁線圈產生磁場來驅動振動膜發聲的,因此需要一定的電流才能驅動它,單片機IO引腳輸出的電流較小,單片機輸出的TTL電平基本上驅動不了
    發表于 09-20 17:19 ?5次下載
    51單片機<b class='flag-5'>驅動</b><b class='flag-5'>蜂鳴器</b><b class='flag-5'>演奏</b><b class='flag-5'>音樂</b>的程序和<b class='flag-5'>蜂鳴器</b>的原理及有源與無源的區別

    如何使用單片機進行蜂鳴器演奏音樂的程序資料免費下載

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

    利用蜂鳴器演奏簡單的樂譜

    那么,今天分享的是利用蜂鳴器演奏一些簡單的樂譜。
    的頭像 發表于 05-26 16:04 ?2780次閱讀
    利用<b class='flag-5'>蜂鳴器</b><b class='flag-5'>演奏</b>簡單的樂譜
    主站蜘蛛池模板: 国产最新精品亚洲2021不卡 | 国产一区二区三区内射高清 | 亚洲国产亚综合在线区尤物 | 中文字幕在线视频在线看 | 99久久爱看免费观看 | 久久精品国产96精品亚洲 | 免费人成网站在线观看10分钟 | 亚洲成人免费在线观看 | jyzzjyzzz视频国产在线观看 | 无码成人AAAAA毛片含羞草 | 亚洲色大成网站WWW永久麻豆 | 在教室伦流澡到高潮H女攻视频 | 老师的脚奴 | 亚洲三级大片 | 一级毛片两人添下面 | 亚洲在线国产日韩欧美 | 国产曰批试看免费视频播放免费 | 免费高清国产 | 国产AV精品无码免费看 | 三级网址在线播放 | 最近日本MV字幕免费观看视频 | 色偷偷超碰97人人澡人人 | 欧美成人性色生活18黑人 | 99er热精品视频国产免费 | 四虎影视库永久免费 | aaa级黄影片 | 免费视频国产在线观看网站 | 两个人的视频免费 | www精品一区二区三区四区 | 色欲AV精品人妻一区二区三区 | 午夜福利理论片高清在线 | 国内精品久久久久久久试看 | 午夜理论电影在线观看亚洲 | 色婷婷五月综合久久中文字幕 | 2020国产欧洲精品视频 | 99爱在线精品视频免费观看9 | 伊人久在线观看视频 | 理论片在线观看片免费 | adc影院在线 | 女人高潮久久久叫人喷水 | 国产久久精品热99看 |