第四章 音樂實驗

鄧小榮啟雅發表於2018-03-06

第四章 音樂實驗

enter image description here

材料:耳機(無源蜂鳴器,8歐姆小喇叭),杜邦線,鱷魚夾,3伏電池(鋰電池)。 enter image description here

1,播放音樂

播放一個音:
enter image description here
可以選擇音調和節拍:
enter image description here

播放一串音:
enter image description here

播放一首樂曲:
enter image description here
可以選擇不同的樂曲和播放模式。
在左邊的模擬區可以測試效果,聲音由計算機發出。

小強:離開計算機怎麼辦?

2,離線播放音樂

板子要脫離計算機播放音樂,就要外接耳機或揚聲器。
enter image description here
音樂從P0腳輸出,另一線接地,可以通過雙頭鱷魚夾連線。

小強:耳機太麻煩,而且只有自己聽到。

那就用無源蜂鳴器:
enter image description here

注意:無源蜂鳴器有極性,不能接反,記得撕掉封條。

小強:好難聽!

那就用8歐姆小喇叭:
enter image description here
小強:這還差不多,就是音量有點小。
接上電池測試。

小強:能選的音樂太少,能不能自己編曲?

3,自編音樂

enter image description here
enter image description here

小強:能不能做個電子琴?

4,五音電子琴

bit上有兩個按鈕,另外P0、P1、P2有按鈕功能,但P0要作為音樂輸出,所以不能用:
enter image description here

小強:太少了!

5,十八音電子琴

先學點預備知識。

5.1 知識點:輸入輸出埠(I/O)

enter image description here

bit共有19個輸入輸出埠(I/O),I/O是INPUT和OUTPUT的縮寫,可以用來作為輸入輸出。也叫數字埠。

小強:為什麼叫數字埠?
因為計算機只認得兩個數:0和1,所以它輸入和輸出都只能是0和1。
小強: 0和1是什麼意思?
0代表低電平(電壓),通常指接地(GND),1代表高電平(電壓),通常指電源電壓(或者接近電源電壓)  

也就是說,把某個埠接到地,就是輸入0,接電源就是輸入高電平,輸入1。
enter image description here
同樣,如果讓某個埠輸出0,那麼它的電平就是0(接地),輸出1就是高電平(內接電源電壓)。 enter image description here
小強:埠既能作為輸入,又能作為輸出嗎?

可以,但不能同時,你要指定它作為輸入或者輸出。

5.2 知識點:指定埠輸入或輸出

點開“高階”,“引腳”:
enter image description here

拖出“向引腳數字寫入值”和“數字讀取引腳”:

enter image description here
意思是:
當A按下,指定埠P0為輸出,並輸出高電平。
當B按下,指定埠P0為輸入,並將輸入值存放在變數“item”中。

注意:數字讀取引腳的值,要存放在變數中!
如果把發光二極體接在P0和地之間,按下A時,它會發光。
所以,我們可以用程式控制某個埠接電源正極或負極,就象一個開關。所謂程式設計,就是控制一系列開關!

修改變數名為“P3”,我們指定埠P3為輸入:
enter image description here
可以看到,從P0-P20共19個腳都可用。(P17,P18不存在)

當它為低電平(接地)時,播放中音C:
enter image description here

下載到bit,用導線將P3腳和地短路,聽“哆”的一聲。

小強:不是!一直“哆”! 還亮了三個燈!
enter image description here

這說明,P3引腳一直是低電平。
原來,P3引腳是跟板載的LED燈相連的(參看圖1),bit的引腳大部分都是兼職,它的電平有高有低,還有的隨機。
小強:怎麼辦?
拉高它,就是把它接到電源電壓。

5.3 知識點:配置上拉/下拉

點開”高階“,“引腳”,“更多”,拖出“ 設定拉 引腳為”: enter image description here

放在“當開機時”中,把P3設為上拉:
enter image description here
上拉:把埠接高電平,即接電源正極 。
下拉:把埠接低電平,即接電源負極。

搞定。

同樣,設定其它埠中:
enter image description here
讀取各埠值,存放在對應的變數中:
enter image description here
判斷各埠值,播放不同的聲音:
enter image description here

完整程式:
enter image description here

用導線一端接地,另一端分別接不同的埠,一個18音電子琴做好了。

小明:不對吧?埠拉高,就是接電源正極,那你又把它接地,那不是電源短路了?不會燒壞?

問得好!

5.4 知識點:內部上拉/下拉電阻

其實,拉高,並沒有真的接電源正極,拉低也沒有真的接電源負極! 而是通過一個大電阻(比如10K歐)接正極或負極。
enter image description here enter image description here
所以,如果P0為上拉,即使P0接地,流出P0的電流也只有3/10000=0.00003安=0.3毫安。不會短路。
同樣,如果P0為下拉,即使P0接電源正極,也只有0.3毫安的電流流入。

6、 用音調錶示資料

比如,金屬控測器:
enter image description here

相關文章