Arduinoで楽器演奏:音階生成のステップバイステップガイド
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | メインマイコン |
| スピーカー 0.25W 8Ω | 1 | 音声出力用 |
| 抵抗 221Ω(150〜220Ω推奨) | 1 | 電流制限用 |
使用アプリ・オンラインサービス
- Arduino IDE
プロジェクト概要
Arduinoとスピーカー、抵抗だけで音楽を演奏する方法を解説します。多くの類似プロジェクトでは音階周波数をルックアップテーブルで管理しますが、本プロジェクトでは計算式で周波数を生成します。1〜88の数値を受け取り、88鍵ピアノの各鍵に対応する周波数を算出します。
Arduino tone()関数の制限と解決策
Arduino標準のtone()関数は31Hz未満の周波数を生成できませんが、88鍵ピアノの最低音は約27.5Hz(A0)です。全音域をカバーするため、delayMicroseconds()を用いて矩形波を自前で生成します。
マイクロ秒単位の制御
本プロジェクトはマイクロ秒(100万分の1秒)レベルで動作します。delayMicroseconds()は数千マイクロ秒以上の遅延を正確に行えないという制限がありますが、これを回避する方法も併せて解説します。
コードの簡潔さ
これらの課題を克服しつつ、コードは非常にコンパクトで、ほぼ1画面に収まります(解説コメントを除く)。完全コメント版コードは動画説明欄のリンクから入手可能です。
回路図
スピーカーをGNDとピン12の間に抵抗を介して接続します。

参考情報
- UbuntuへのArduino IDEインストール方法
- 完全コメント版ソースコード(Gist: 1add672bc7957135ac4e212360acbc98)
製造プロセス
- Arduinoで作るモニター用Ambilightシステム:没入感アップの自作ガイド
- ArduinoでユニバーサルIRリモコンを自作:ステップバイステップガイド
- Arduinoで作るパンチングキーボードボタン:ストレス解消カスタムキー
- Arduino MegaとNEO-6M GPSモジュールの接続:ステップバイステップガイド
- Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
- ArduinoとNokia 5110ディスプレイで自作電圧計:ステップバイステップガイド
- 音声で家電を操作:GoogleアシスタントとBluetoothでArduino家電制御
- ArduinoをNMEA-0183に接続するステップバイステップガイド
- Arduinoと超音波センサーで自動ドアを制御:LCD・ブザー付き完全ガイド
- Bluetooth制御Arduinoカー完全自作ガイド – 3Dプリント&Arduino Nanoで作る2輪ロボット
- ArduinoでModbusをマスターする:ステップバイステップガイド