プロジェクト05:ブザーの音程制御

プロジェクト05:ブザーの音程を自在にコントロール!

このプロジェクトで学ぶこと: パッシブブザーに周波数を指定して任意の音程を出す方法を学びます。tone()関数を使えば、簡単なメロディを演奏することもできます。


完成イメージ

[ドレミファソラシドのメロディが流れる動画を挿入]


必要な部品

部品名 数量
Arduino Uno R3 1
パッシブブザー 1
ブレッドボード 1
ジャンパー線 数本

回路図と配線

[回路図画像を挿入]

配線手順

  1. パッシブブザーの +側 をArduinoの 8番ピン に接続する
  2. パッシブブザーの −側 をGNDに接続する

Arduinoスケッチ(プログラム)

// ドレミファソラシドを演奏する

const int BUZZER_PIN = 8;

// 音階と周波数(Hz)の対応
const int DO  = 262;
const int RE  = 294;
const int MI  = 330;
const int FA  = 349;
const int SO  = 392;
const int LA  = 440;
const int SI  = 494;
const int DO2 = 523;

// 音符の配列(周波数と長さ)
const int melody[]   = {DO, RE, MI, FA, SO, LA, SI, DO2};
const int duration[] = {400, 400, 400, 400, 400, 400, 400, 800};

void setup() {
  // 何もしない
}

void loop() {
  for (int i = 0; i < 8; i++) {
    tone(BUZZER_PIN, melody[i], duration[i]);  // 音を鳴らす
    delay(duration[i] + 50);                   // 音の長さ+音と音の間の間隔
  }
  noTone(BUZZER_PIN);  // 演奏後に停止
  delay(1000);
}

コードのポイント解説

tone(ピン番号, 周波数, 長さ[ms]) 指定した周波数(Hz)の音を、指定した長さ(ミリ秒)だけ鳴らします。周波数が音程を決めます。ラ(A4)= 440Hzというように、音楽の音符と周波数は対応しています。

noTone(ピン番号) 鳴らしている音を停止します。演奏後に必ず呼ぶ必要があります。

周波数と音程の関係 音程が1オクターブ上がるごとに周波数が2倍になります(ド262Hz → 1オクターブ上のド523Hz)。これは音楽と物理が交差する美しい関係です。


動作確認

  1. スケッチをアップロードする
  2. ドレミファソラシドのメロディが繰り返し流れれば成功

アレンジしてみよう

  • melody[]duration[]の値を変えて好きな曲を演奏してみましょう
  • 「きらきら星」などの簡単な曲を調べて入力してみましょう

このプロジェクトで学んだこと

  • tone()関数: 周波数を指定して任意の音程を出す方法を習得しました
  • 周波数と音程: 音楽の音符が物理的な周波数と対応していることを理解しました
  • 配列の応用: 音程と長さを配列で管理し、ループで演奏する構造を学びました

次のプロジェクト「CDSで光連動LEDライト」では、はじめてアナログ入力を使って環境の変化を読み取ります。


深掘り:技術の背景と社会への広がり

電子音楽の誕生:音を「周波数」として扱う発想

音を電気信号として扱う試みは1800年代後半から始まり、1897年にタデウス・ケールの「テルハーモニウム」が世界初の電子楽器として登場しました。1920年代にはレフ・テルミンが「テルミン」を発明し、手を近づけるだけで音程が変わる演奏スタイルで世界を驚かせました。tone()関数で周波数を指定して音を出すという今日の体験は、こうした電子音楽の100年の歴史の延長線上にあります。

シンセサイザーから音楽制作の民主化へ

1960〜70年代のモーグ・シンセサイザーの登場は音楽制作を根本から変え、スタジオ録音からクラブミュージック、ゲームサウンドまで電子音が社会に浸透しました。現代のDAW(デジタル・オーディオ・ワークステーション)ソフトウェアは、Arduinoのような小型マイコンで動く原理と同じ「周波数の数値制御」を高度化したものです。音楽制作のデジタル化は、スタジオを持てない個人が世界に楽曲を発信できる環境を生み出し、音楽産業の構造を大きく変えました。


プロジェクト04:ブザーを使ってみよう全プロジェクト一覧 | 次のプロジェクト:CDSで光連動LEDライト →