差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン | |||
arduino:出力基礎:音を鳴らす [2019/06/17 23:20] – [音階で音を鳴らしてみる] baba | arduino:出力基礎:音を鳴らす [2019/06/17 23:36] (現在) – [音階で音を鳴らしてみる] baba | ||
---|---|---|---|
行 133: | 行 133: | ||
\] | \] | ||
+ | ではここまでの準備を利用して、有名なNokia Tuneを鳴らしてみましょう。下記サイトを参考にします。 | ||
+ | * https:// | ||
+ | |||
+ | <code .c nokiatune.pde> | ||
+ | float getFreq(int n) | ||
+ | { | ||
+ | | ||
+ | } | ||
+ | void setup() | ||
+ | { | ||
+ | pinMode(6, OUTPUT); | ||
+ | } | ||
+ | int interval = 250; | ||
+ | void loop() { | ||
+ | tone(6, getFreq(76), | ||
+ | delay(interval/ | ||
+ | tone(6, getFreq(74), | ||
+ | delay(interval/ | ||
+ | tone(6, getFreq(66), | ||
+ | delay(interval); | ||
+ | tone(6, getFreq(68), | ||
+ | delay(interval); | ||
+ | tone(6, | ||
+ | delay(interval/ | ||
+ | tone(6, getFreq(71), | ||
+ | delay(interval/ | ||
+ | tone(6, getFreq(62), | ||
+ | delay(interval); | ||
+ | tone(6, getFreq(64), | ||
+ | delay(interval); | ||
+ | tone(6, getFreq(71), | ||
+ | delay(interval/ | ||
+ | tone(6, getFreq(69), | ||
+ | delay(interval/ | ||
+ | tone(6, getFreq(61), | ||
+ | delay(interval); | ||
+ | tone(6, getFreq(64), | ||
+ | delay(interval); | ||
+ | tone(6, getFreq(69), | ||
+ | delay(interval*4); | ||
+ | delay(interval*4); | ||
+ | } | ||
+ | </ | ||
===== 余談 ===== | ===== 余談 ===== | ||
鳴らしたいノート番号を指定することでその周波数を計算することができますが、その逆である「鳴らしたい周波数が決まっている場合、それはピアノの鍵盤でいうところのどの位置になるのか?」を計算するには、方程式をnについてとけば良いです。 | 鳴らしたいノート番号を指定することでその周波数を計算することができますが、その逆である「鳴らしたい周波数が決まっている場合、それはピアノの鍵盤でいうところのどの位置になるのか?」を計算するには、方程式をnについてとけば良いです。 |