arduino:出力基礎:音を鳴らす

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
arduino:出力基礎:音を鳴らす [2019/06/17 23:20] – [音階で音を鳴らしてみる] babaarduino:出力基礎:音を鳴らす [2019/06/17 23:36] (現在) – [音階で音を鳴らしてみる] baba
行 133: 行 133:
 \] \]
  
 +ではここまでの準備を利用して、有名なNokia Tuneを鳴らしてみましょう。下記サイトを参考にします。
 +  * https://musescore.com/user/29944637/scores/5266155
 +
 +<code .c nokiatune.pde>
 +float getFreq(int n)
 +{
 + return 440.0*pow(2, (n-69)/12.0);
 +}
 +void setup()
 +{
 +  pinMode(6, OUTPUT);
 +}
 +int interval = 250;
 +void loop() {
 +  tone(6, getFreq(76), interval/2);
 +  delay(interval/2);
 +  tone(6, getFreq(74), interval/2);
 +  delay(interval/2);
 +  tone(6, getFreq(66), interval);
 +  delay(interval);
 +  tone(6, getFreq(68), interval);
 +  delay(interval);
 +  tone(6,getFreq(73), interval/2);
 +  delay(interval/2);
 +  tone(6, getFreq(71), interval/2);
 +  delay(interval/2);
 +  tone(6, getFreq(62), interval);
 +  delay(interval);
 +  tone(6, getFreq(64), interval);
 +  delay(interval);
 +  tone(6, getFreq(71), interval/2);
 +  delay(interval/2);
 +  tone(6, getFreq(69), interval/2);
 +  delay(interval/2);
 +  tone(6, getFreq(61), interval);
 +  delay(interval);
 +  tone(6, getFreq(64), interval);
 +  delay(interval);
 +  tone(6, getFreq(69), interval*2);
 +  delay(interval*4);
 +  delay(interval*4);
 +}
 +</code>
 ===== 余談 ===== ===== 余談 =====
 鳴らしたいノート番号を指定することでその周波数を計算することができますが、その逆である「鳴らしたい周波数が決まっている場合、それはピアノの鍵盤でいうところのどの位置になるのか?」を計算するには、方程式をnについてとけば良いです。 鳴らしたいノート番号を指定することでその周波数を計算することができますが、その逆である「鳴らしたい周波数が決まっている場合、それはピアノの鍵盤でいうところのどの位置になるのか?」を計算するには、方程式をnについてとけば良いです。
  • /home/users/2/lolipop.jp-4404d470cd64c603/web/ws/data/attic/arduino/出力基礎/音を鳴らす.1560781227.txt.gz
  • 最終更新: 2019/06/17 23:20
  • by baba