找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 4756|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

Arduino教程-大合唱

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99556 發(fā)表于 2016-1-10 04:37 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
Hi,大家好!上一次,我們一起完成了一個(gè)跨時(shí)代的留聲機(jī)。用單個(gè)喇叭播放了一首優(yōu)美的歌曲。留聲機(jī)的實(shí)現(xiàn)固然很美好,但畢竟只有一個(gè)喇叭,如果哪天需求變更,想再多加兩個(gè)喇叭是否可以呢?當(dāng)然也是可以的!我們今天就一起學(xué)習(xí)一下如何讓多個(gè)喇叭配合播放一段優(yōu)美的旋律!
首先,還是老規(guī)矩,讓我們看看需要做哪些準(zhǔn)備?
硬件方面
圖片來(lái)源:Arduino電路配件
具體包括如下:
  • Arduino UNO電路板(1塊)
  • 面包板(1塊)
  • 100Ω電阻(3個(gè))
  • 8Ω揚(yáng)聲器(3個(gè))
  • 面包線(若干)
配件的種類幾乎和上一節(jié)一樣,唯一不一樣的是,面包板變大了一些。對(duì)于這個(gè)大型號(hào)的面包板,簡(jiǎn)單說明一下,上下兩行橫排的插孔之間是連通的。另外,電阻和揚(yáng)聲器的數(shù)量也各自變成了三個(gè)。
軟件方面Arduino官方提供的IDE。
連接電路
圖片來(lái)源:Arduino電路連接
看起來(lái)好像很復(fù)雜,其實(shí)就是多了兩個(gè)揚(yáng)聲器而已,現(xiàn)在變成了三個(gè)。由于面包板上下各兩行的插孔橫向之間是連通的,也就是說,只需要將上排第二行中任意一個(gè)插孔連接到Arduino的GND針腳,此一整行即可連通地線。所以如果想連通地線,只需要將底線插入此行的任意一個(gè)插孔即可,如圖中所示。
好!剩下最后一步。讓我們添加幾行代碼!
添加幾行代碼首先,新建一個(gè)項(xiàng)目窗口。

圖片來(lái)源:Arduino官方IDE
向其中添加幾行代碼:


  1. // 對(duì)Arduino電路板或相關(guān)狀態(tài)進(jìn)行初始化方法
  2. void setup() {
  3.     // 此處木有代碼,是不是很開心?!
  4. }
  5. // 系統(tǒng)調(diào)用,無(wú)限循環(huán)方法
  6. void loop() {
  7.   // 向8號(hào)數(shù)字引腳發(fā)送信號(hào),
  8.   // 終止此引腳上的揚(yáng)聲器繼續(xù)發(fā)聲。
  9.   noTone(8);
  10.   // 播放6號(hào)引腳上的揚(yáng)聲器。
  11.   // 頻率為440Hz,時(shí)長(zhǎng)為200毫秒。
  12.   tone(6, 440, 200);
  13.   // 延時(shí)200毫秒。
  14.   delay(200);
  15.   // 向6號(hào)數(shù)字引腳發(fā)送信號(hào),
  16.   // 終止此引腳上的揚(yáng)聲器繼續(xù)發(fā)聲。
  17.   noTone(6);
  18.   // 播放7號(hào)引腳上的揚(yáng)聲器。
  19.   // 頻率為494Hz,時(shí)長(zhǎng)為500毫秒。
  20.   tone(7, 494, 500);
  21.   // 延時(shí)500毫秒。
  22.   delay(500);
  23.   // 向7號(hào)數(shù)字引腳發(fā)送信號(hào),
  24.   // 終止此引腳上的揚(yáng)聲器繼續(xù)發(fā)聲。  
  25.   noTone(7);
  26.   // 播放8號(hào)引腳上的揚(yáng)聲器。
  27.   // 頻率為523Hz,時(shí)長(zhǎng)為300毫秒。
  28.   tone(8, 523, 300);
  29.   // 延時(shí)300毫秒。
  30.   delay(300);
  31. }
復(fù)制代碼



好了!整個(gè)代碼就醬!坦白說很簡(jiǎn)單,連判斷語(yǔ)句都木有,只有三個(gè)方法,其中兩個(gè)還是一對(duì),方法tone()和noTone()。delay()方法不用多說,就是延遲執(zhí)行,參數(shù)單位為毫秒。

圖片來(lái)源:Arduino官方IDE的文件編輯菜單選項(xiàng)
點(diǎn)擊上圖中標(biāo)有向右指向的箭頭圖標(biāo),將編寫完成的代碼燒入Arduino電路板。如果一切順利,燒入完成之后Arduino會(huì)立刻重復(fù)一段美妙的音樂!嗯,就是“大合唱”!
總結(jié)通過這次的學(xué)習(xí),我們重新熟悉了一下如何播放聲音。在上一次學(xué)習(xí)的基礎(chǔ)之上,我們又增加了兩個(gè)揚(yáng)聲器。從知識(shí)上來(lái)說,主要是在鞏固對(duì)于聲音的控制。
下期預(yù)告現(xiàn)在我們基本上已經(jīng)掌握了聲音的播放和停止。唯一可惜的是,聲音的播放形式還是那么的刻板。怎么辦呢?嗯,接下來(lái),讓我們來(lái)點(diǎn)新潮的,聽一聽圣光的聲音!

ohcoder的系列精彩Arduino教程:
Arduino教程-初識(shí)Arduino(包含本教程目錄):http://www.torrancerestoration.com/bbs/dpj-41334-1.html
Arduino教程-開篇:http://www.torrancerestoration.com/bbs/dpj-41335-1.html
Arduino教程-點(diǎn)亮LED神燈:http://www.torrancerestoration.com/bbs/dpj-41336-1.html
Arduino教程-讓LED神燈閃爍:http://www.torrancerestoration.com/bbs/dpj-41337-1.html
Arduino教程-讓LED神燈亮度漸變:http://www.torrancerestoration.com/bbs/dpj-41338-1.html
Arduino教程-獲取輸入數(shù)字信號(hào):http://www.torrancerestoration.com/bbs/dpj-41339-1.html
Arduino教程-獲取輸入模擬信號(hào):http://www.torrancerestoration.com/bbs/dpj-41340-1.html
Arduino教程-另一種時(shí)間延遲:http://www.torrancerestoration.com/bbs/dpj-41331-1.html
Arduino教程-按鍵開關(guān):http://www.torrancerestoration.com/bbs/dpj-41341-1.html
Arduino教程-停止抖動(dòng)!:http://www.torrancerestoration.com/bbs/dpj-41333-1.html
Arduino教程-拋棄外部電阻!:http://www.torrancerestoration.com/bbs/dpj-41332-1.html
Arduino教程-用按鍵開關(guān)計(jì)數(shù):http://www.torrancerestoration.com/bbs/dpj-41330-1.html



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328558 發(fā)表于 2020-8-7 10:02 | 只看該作者
很簡(jiǎn)潔的編程方式啊,還是16的帖子
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表