Arduinoで童謡「鯉のぼり」を流してみよう

投稿者:

こんにちは、小室です。Arduinoは持っているけれど、LEDをチカチカさせるだけでそこから進めてない、という方におすすめのプロジェクトです。

Arduinoと圧電スピーカーを使って、童謡「鯉のぼり」を流してみましょう。

用意するもの

スイッチサイエンスチャンネルでは圧電スピーカーの接触が悪くてうまく音が鳴りませんでした…お恥ずかしい…圧電スピーカーはしっかりはんだづけして使うことをお勧めします。

配線

以下の実体配線図をみて配線して下さい。

GWproject_koinobori_ブレッドボード

 

もちろん、Arduino Unoに直接さしても使えます。圧電スピーカーの黒色の線をGNDに、赤色の線を12番ピンにつないでください。圧電スピーカーには+−の向きはないですが、色を合わせることに慣れておくと今後複雑な回路を作るときにちょっとだけ楽です。

スケッチ

#define PIN 12

void setup(){
    tone(PIN, 330, 300);
  delay(300);
  tone(PIN, 294, 300);
  delay(300);
  tone(PIN, 262, 600);
  delay(600);
  tone(PIN, 294, 600);
  delay(600);
  tone(PIN, 330, 600);
  delay(600);
  tone(PIN, 440, 600);
  delay(600);
  tone(PIN, 392, 300);
  delay(600);
  tone(PIN, 330, 300);
  delay(300);
  tone(PIN, 330, 300);
  delay(300);
  tone(PIN, 330, 600);
  delay(600);
  tone(PIN, 294, 300);
  delay(300);
  tone(PIN, 262, 300);
  delay(300);
  tone(PIN, 294, 600);
}

void loop(){

}
//ミレドレミラソ ミミミレドレ

Arduino Unoのリセットスイッチを押すたびに鯉のぼりが流れるはずです。今回はこどもの日なので鯉のぼりを流しています。クリスマスにはジングルベルを流すとか、誕生日にはハッピーバースデートゥーユーを流すとか、音階をかえるだけでいろいろ楽しめますよ。

少しだけスケッチの説明をしておきます。

まずはtone()関数です。ひとつ目のPINというのは、スケッチの最初で定義した「12」です。スピーカーがつながっているピン番号を表します。ふたつ目の数字は音階を表す数字です。3番目は音の長さを表しています。単位は「ミリ秒」です。そして、このスケッチで最も重要なポイントは、各tone()関数の間にあるdelay()関数です。これがないと音楽になりません。どんなふうになるか気になる方は、試しに間にあるdelay()関数を全部コメントアウトして実行してみてください。

音階

tone()の2番めの数字で使う音階は下の表を参考にして下さい。262が真ん中のドです。 

ラ# ド# レ# ファ ファ# ソ#
110 117 123 131 139 147 156 165 175 185 196 208
220 233 247 262 277 294 311 330 349 370 392 415
440 466 494 523 554 587 622 659 698 740 784 83