在project07學習到了使用按鍵與resistor ladder組合創造出keyboard instrument的樂趣,在想使用更多的組合可以組出基本的音階。
硬體:
switch *8, resistor 數個
程式:
使用if...else, 加上else if 擴充邏輯判斷到八種組合,使用array指令增加輸出的聲音頻率。
電阻與聲音頻率對照表:
其中:Resistor是取用的電阻大小,接地的參考電阻為21600 Ohm(21.6K Ohm),Voltage read是估計值,Real A0是實際上Arduino A0所讀到的區間數值(最後兩格),music frequency是聲音頻率的對照。
圖片&影片
八個按鍵很壯觀,若有更多當然更酷,不過那就更花時間了!!
後記:
雖然可以很明顯地聽出不同音階,不過木耳的我還是分辨不出來其實際的差異。記得app有可以簡易判斷樂器音階(!?)的軟體!?改天下載來玩玩看。
參考:
Arduino_Project07_Keyboard Instrument
Physical Music note
可以請問要增加更多按鍵
回覆刪除電阻是怎麼算的?急需謝謝你��
你好,請從參考資料的兩篇去閱讀,那是用電阻分壓的方式去匹配的,至於轉換過去的跟Piezo也有關係,然後使用Arduino的Function: tone。
刪除http://www.arduino.cc/en/Reference/Tone
補充:
刪除這是應用Resistor Ladders,所以您需要多少階層,就去計算出所需的。
例如:Uno-AI的解析度只有1024,以您的例子來說的話,解析度需要1024/16 =64 (Ohm)
如下表:
Interval R
64
Button V read Set R
1 1024
2 960
3 896
4 832
5 768
6 704
7 640
8 576
9 512
10 448
11 384
12 320
13 256
14 192
15 128
16 64
然後上面提到的Resistor Ladders:
https://en.wikipedia.org/wiki/Resistor_ladder
不過可能要注意:
(A)實際電路的配置是否其解析度可以讓AI讀取到這麼細微的改變或者;
(B)可能找不到匹配的電阻喲。
以上,備份一下提供參考~