前言:
經過了上一次的project學到了如何使用光敏電阻與piezo搭配成Theremin,這次緊接著又學到使用”Resistor Ladder“的方式來模擬鍵盤樂器(Keyboard Instrument)。利用resistor ladder可以在類比輸入端模擬出數位輸入的效果。
硬體:
電阻:220, 10K, 1M ohm.
按鈕, Piezo, 還可以自己製作鋼琴鍵盤般的紙板。
程式:
利用resistor ladder的設計,當按下不同位置的按鈕時,通過的電壓也不同。藉由程式設定不同讀取電壓分類來傳出不同的頻率(數位輸出)。這個project模擬了middle C, D, E 以及F(262, 294, 330 and 349 Hz.),也利用了新的指令來宣告一串數列,不需要在每個都設定增加編寫程式的麻煩。
Command:
name[] = {1, 2, 3, 4..., n}_ 定義數列的內容
if()...else==if...else if..else if..else if...else_ 在if...else之間可以插入許多個else if以增加判斷邏輯的數量,可以設定許多種條件。
noTone_ 根據文中的建議是因為一直進行判斷,所以當所有邏輯都不成立的時候,需要將tone()的功能關閉。
圖片&影片:
若有足夠的按鈕以及計算好的電阻,可以排出更多階層的電子樂器按鍵喲
結論:
利用參考資料實際算了一下resistor ladder的電壓分流(因為Uno只有1023的input),若增加恰當與足夠的電阻是可以排出更有豐富的聲音階層。另外tone的功能則可以送出不同頻率來搭配輸入,當然也可以類似project06的模式,改用其他更多不同的感測器(類比輸入,例如搭配超音波_倒車雷達的聲響!)來”玩“聲音。不過這有提到一點就是當使用tone功能時,analogWrite()在pin 3 &11會有被干擾的現象。應該是硬體設計上的問題吧!?再找資料來瞭解瞭解。^^期待下一個project可以學到的東西了。
Arduino Project Books