シンプルなArduinoスピーカーの作り方 - ステップバイステップガイド
Arduinoで作れるユニークなプロジェクトをお探しですか?それならArduinoスピーカーを作ってみましょう。Arduinoスピーカーは様々な音を再生できる音楽プロジェクトで、Arduinoプロジェクト初心者に最適です。
実際、Arduinoスピーカープロジェクトは2つのコンポーネントのみで構築可能で、最もシンプルなArduino回路の1つです。
このArduinoスピーカーチュートリアルでは、Arduinoスピーカーの仕組みと、構築・プログラミング方法を紹介します。
準備はいいですか?始めましょう!
Arduinoスピーカーの仕組み
前述の通り、Arduinoスピーカーで様々なサウンドアプリケーションを作成できます。良い例は、様々な曲を再生する音楽カーリバースホーン。プログラムをアップロードし直せばスピーカーの音を変更可能。
しかし、実際どう動作するのでしょうか?
Arduinoが周波数のトーンを生成し、スピーカー経由で再生します。興味深いことに、異なるトーン変化(ピッチ)が正しいタイミング(リズム)と混ざり合って音楽を作ります。
スピーカーから音を再生するには、Arduinoが出力信号を生成し、デジタルピン3経由で送信。そのピンに接続されたスピーカーが生成音を再生します。
簡単なプログラミングで様々な曲を再生可能。また、Arduinoプログラムはtone()関数を使って音を生成します。
プログラムは1つのデジタルピンで周波数の矩形波を生成可能。さらに、この周波数の継続時間を設定できます。
ただし、継続時間を設定しない場合、noTone()関数をアクティブにするまで矩形波を生成し続けます。
tone()関数の基本的な使い方
tone()関数は2つの値で動作:Arduinoで使用するピンと、ヘルツ単位で指定する周波数。
周波数は符号なし整数で、0〜65,535の値を取ります。しかし、人間の耳に聞こえる周波数は2000〜5000Hzの範囲であるべきです。
tone()関数テスト用のシンプルなコード例:
また、tone()の第2引数を100、1000、10000、650000などに変更して実験し、出力音への影響を観察できます。値が高いほど、スピーカーが生成するピッチは高くなります。
Arduinoスピーカーの作り方
Arduinoスピーカーの作り方に入る前に、このプロジェクトに必要なコンポーネントを見てみましょう:
- Arduinoボード
- ピエゾブザーまたはスピーカー
- 接続ワイヤー
手順
Arduinoスピーカーの構築は簡単。ピエゾブザーまたはスピーカーをArduinoのピン3に接続するだけ。1本のワイヤーでスピーカーをピン3に、もう1本でグラウンドピンに接続。
Arduinoスピーカー構築後、以下のコードをArduino UNOにアップロード:
次にpitch.hファイルを作成。pitch.hファイルは音楽ノートのピッチ値をすべて含む追加ファイル。例えば、NOTE_FS4はF#、NOTE_C4は中央ドを表す。
pitchファイルがあれば、tone()関数で周波数を書く代わりにノート名を記述可能。興味深いことに、Brett Hagmanが元々pitchファイルを書き、tone()プロセス使用時のサウンド追加を容易にした。
ファイル作成方法:「Ctrl+Shift+N」またはMacの場合「Cmd+Shift+N」を入力し、以下のコードを入力:
Arduinoスピーカーのテスト
プログラムをArduinoスピーカーにアップロードすると、コード内の曲が再生されるはず。シリアルモニタを開くと出力トーン周波数も確認可能。
ブレッドボードを使ったArduinoピエゾスピーカーの作り方
回路設計
このプロジェクトに必要なもの:
- Arduinoボード
- ピエゾスピーカー
- ハンダレスブレッドボード
- 100Ω抵抗
- ジャンパーワイヤー2本
手順
- まず、ブレッドボード上にブザーを配置し、リード線が別々の行に来るようにする。
- プラスリード(通常赤色または+マーク付きワイヤー)をArduinoのデジタルピン8に接続。
- マイナスリードをΩ抵抗に接続してからグラウンドピンに接続。
Arduinoスピーカーでビートを作る方法
トーン間に遅延を追加してビートを作成可能。wait()関数でミリ秒単位の継続時間を使用してユニークな瞬間を作れます。
tone()関数はArduinoの内蔵タイマーの1つを使用するため、tone()関数の第3引数として500ミリ秒を使用可能。
これに1000ミリ秒の遅延を続けると、500ミリ秒の遅延が作成される。プログラムは時間を足し合わせない。代わりに、継続時間と一時停止を同時に開始。したがって、トーンが500ミリ秒実行される頃には、500ミリ秒の遅延が残っている。つまり、500ミリ秒の音と500ミリ秒の無音が得られる。
Arduinoスピーカーでのビート作成は複雑なプロセスだが、慣れれば効果的にユニークなサウンドを作成可能。
tone()関数使用時の制限事項
tone()で音を生成する際の欠点を見てみましょう。
- tone()関数は2つの別々のピンで同時に動作できない。例えば、2つの個別スピーカーを2つの異なるピンに接続している場合、両スピーカーは同時に再生できない。tone()関数のため、一度に1つしか再生できない。
また、別のピンでtone()関数を使用したい場合、noTone()関数で最後のピンの機能を非アクティブにする必要がある。
- また、ピン3と11でtone()とanalogWrite()関数を同時に使用できない。望ましくない結果のみ得られる。これらの関数はピン3または11で同じ内蔵タイマーを使用するため互換性がない。ただし、試してどんなノイズが生成されるか聞いてみることは可能。
- tone()関数で生成可能な最低トーン値は31Hz。さらに、31やそれ以下の値を関数に入力可能だが、良い出力表現は得られない。
最後に
Arduinoスピーカーは誰でも作れる最も簡単なArduinoプロジェクトの1つです。(ブレッドボード使用時を除き)プロジェクト全体を構築するには追加コンポーネント1つだけで済みます。
何より、Arduinoスピーカーは回路のプログラミング方法に応じて様々な音を生成可能。Arduinoスピーカーはtone()関数で音を作成。制限はあるものの、Arduinoスピーカーで音を生成する最高のコードの1つです。
ご質問があれば、お気軽にお問い合わせください。喜んでお手伝いします。
産業技術
- Arduinoで作る高精度エナジーモニター&データロガー – Dr. Wattsonボード活用
- ArduinoでユニバーサルIRリモコンを自作:ステップバイステップガイド
- サーミスタを使った温度測定: Arduinoステップバイステップガイド
- ArduinoベースSCARAロボット自作 – ステップバイステップガイド
- 信頼性の高いカレントミラー回路の構築:ステップバイステップガイド
- Arduino入門:概要からプログラミングまで完全解説
- 自動化倉庫の構築:業務モダナイズのためのステップバイステップガイド
- DIY LEDランプキット:省エネ・エコな照明を自作しよう
- 安全なテイザー回路の作り方:自己防衛のための包括的ガイド
- 自作LED懐中電灯:ステップバイステップ回路ガイド
- ラジオリピーター自作ガイド:信頼性の高い中継機をステップバイステップで構築