Arudinoとスイッチ10個、圧電スピーカを用意し図のようにつなぎます。
このプログラムを実行している間にスイッチを押すと音が出ます。スイッチから手を離すと音が止まります。出せる音はドからドの1オクターブです。
このプログラムでは、初期化の時に内部プルアップを有効にすることで、スイッチのところに必要となるプルアップ抵抗(ほかのプログラム例では使っているスイッチと電源(5V)の間の抵抗)を省略しています。 内部プルアップを有効にするには
pinMode(i, INPUT); digitalWrite(i, HIGH);とします(iはピンの番号)。部品の数が少なくなって便利ですが、抵抗値が適当でない場合もあることに注意してください。
loop関数の最初でtを宣言して0を代入し、以降でスイッチが押されていれば、そのスイッチで出す音の周波数をtに代入しています。どのスイッチも押されていなければtは0になります。これを使って最後のif文でtが0でなければ音を出し、0なら音を止めます。