こんにちは、小室です。Arduinoは持っているけれど、LEDをチカチカさせるだけでそこから進めてない、という方におすすめのプロジェクトです。
Arduinoと圧電スピーカーを使って、童謡「鯉のぼり」を流してみましょう。
用意するもの
- Arduino Uno R3 × 1
- 圧電スピーカー × 1
ピンヘッダをはんだづけすると使いやすいです。 - (必要に応じて)ブレッドボード × 1
- (必要に応じて)固いジャンパワイヤ(ブレッドボード用) × 1
スイッチサイエンスチャンネルでは圧電スピーカーの接触が悪くてうまく音が鳴りませんでした…お恥ずかしい…圧電スピーカーはしっかりはんだづけして使うことをお勧めします。
配線
以下の実体配線図をみて配線して下さい。
もちろん、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 |