はじめに
電子工作と音楽を融合させた「ミニ電子楽器」をArduinoで作ってみませんか?本記事では、Arduinoとスピーカーを使った簡単な電子楽器の作り方を紹介します。
✅ タッチボタンで音を鳴らせる
✅ ピエゾスピーカーを使ったシンプルな構成
✅ 音階やメロディーをプログラムで自由に設定
✅ MIDIキーボードやセンサーを追加して拡張可能
✅ 録音機能を追加すればオリジナルの演奏が可能
電子工作初心者でも簡単に作れるので、ぜひ挑戦してみてください!
1. 必要な部品
Arduinoを使った電子楽器は、少ないパーツで作れます。以下の部品を用意しましょう。
部品名 | 用途 |
---|---|
Arduino Uno / Nano | メインのマイコン |
ピエゾスピーカー | 音を鳴らすためのスピーカー |
タクトスイッチ × 4 | 音階を切り替えるボタン |
10kΩ 抵抗 × 4 | ボタンのプルダウン用 |
ブレッドボード | 回路の組み立て |
ジャンパーワイヤー | 各部品の接続 |
可変抵抗(オプション) | 音量や音階の調整 |
2. 配線と回路図
🔹 ボタンとスピーカーの接続
Arduino ピン | 接続先 |
D2 | ボタン1 |
D3 | ボタン2 |
D4 | ボタン3 |
D5 | ボタン4 |
D9 | ピエゾスピーカー(+) |
GND | ピエゾスピーカー(-) |
可変抵抗をA0ピンに接続すると、音程の変更が可能になります。

3. プログラムの実装
以下のコードをArduinoに書き込めば、ボタンを押すと音階が鳴るミニ電子楽器が完成します。
#include "pitches.h"
const int buttonPins[] = {2, 3, 4, 5};
const int notes[] = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4};
const int speakerPin = 9;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(buttonPins[i], INPUT_PULLUP);
}
}
void loop() {
for (int i = 0; i < 4; i++) {
if (digitalRead(buttonPins[i]) == LOW) {
tone(speakerPin, notes[i], 200);
delay(300);
}
}
}
💡 タクトスイッチを押すと、それぞれ「ド・レ・ミ・ファ」の音が鳴ります!
4. 応用機能の追加
🔹 タッチセンサーを使った演奏
タクトスイッチの代わりに、静電容量式タッチセンサーを使うと、タップするだけで演奏できるようになります。
🔹 可変抵抗で音階変更
可変抵抗(ポテンショメータ)を追加すれば、スライダーで音の高さを変更できます。
int potPin = A0;
void loop() {
int val = analogRead(potPin);
int frequency = map(val, 0, 1023, 100, 1000);
tone(speakerPin, frequency);
}
🔹 MIDIキーボードとしてPCと連携
USB-MIDIライブラリを使えば、ArduinoをMIDIキーボードとして認識させ、PCのDAWソフトで演奏可能になります。
🔹 録音&ループ再生機能の追加
複数のボタンを押した記録を保存し、ループ再生することで、簡単なシーケンサー機能を実装できます。
5. よくあるトラブルと解決策
🔹 音が鳴らない
- スピーカーの配線が正しいか確認
tone()
関数のピン番号が適切かチェック- スピーカーの電圧が適切かチェック
🔹 音が途切れる
delay()
を短くして、連続して音が鳴るように調整noTone(speakerPin);
を使い、不要な音を止める
🔹 複数のボタンを同時に押すと動作しない
- ボタンの入力をアナログピンで検出する方式に変更する
- スキャン速度を上げて高速に判別できるようにする
6. まとめ
本記事では、Arduinoでミニ電子楽器を作る方法を解説しました。
💡 今回のポイント
✅ ボタンを押して音を鳴らす基本システムを構築
✅ ピエゾスピーカーを使ってメロディーを演奏
✅ タッチセンサーやMIDI連携で拡張可能!
✅ 録音・ループ機能を加えてより本格的な演奏が可能!
電子楽器を自作して、オリジナルの音楽を楽しみましょう!
コメント