オーディオモジュールとスピーカー¶
概要¶
このレッスンでは、Arduino Unoボードと一緒に使用されるオーディオモジュールとスピーカーについて学びます。これらのコンポーネントは、音楽玩具、DIYサウンドシステム、アラーム、さらには高度な楽器など、さまざまな電子アプリケーションで広く利用されています。Arduinoとオーディオモジュール、スピーカーを組み合わせることで、シンプルながら効果的なメロディープレーヤーを作成できます。
必要なコンポーネント¶
このプロジェクトには、以下のコンポーネントが必要です。
全セットを購入するのが便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから個別に購入することもできます。
コンポーネント紹介 |
購入リンク |
---|---|
- |
|
- |
配線図¶
これはモノラルアンプなので、ピン8をオーディオアンプモジュールのLまたはRピンに接続できます。
10K抵抗は、高周波ノイズを減少させ、オーディオボリュームを下げるために使用されます。DACとオーディオアンプの寄生容量とのRCローパスフィルタを形成します。このフィルタは高周波信号の振幅を減少させ、高周波ノイズを効果的に減少させます。したがって、10K抵抗を追加すると、音楽が柔らかく聞こえ、望ましくない高周波ノイズが排除されます。
回路図¶
コード¶
注釈
ファイル
17-speaker.ino
をelite-explorer-kit-main\basic_project\17-speaker
のパスで直接開くことができます。または、このコードをArduino IDEにコピーしてください。
コードをR4ボードにアップロードし終えると、7つの音符を含むメロディーが聞こえます。
コード解析¶
pitchesライブラリのインクルード: このライブラリは、さまざまな音楽ノートの周波数値を提供し、コード内で音楽記譜法を使用できるようにします。
注釈
正常な動作を確保するために、
pitches.h
ファイルをコードと同じディレクトリに配置してください。 pitches.h#include "pitches.h"
定数と配列の定義:
speakerPin
は、スピーカーが接続されているArduinoのデジタルピンです。melody[]
は、演奏されるノートのシーケンスを格納する配列です。noteDurations[]
は、メロディーの各ノートの持続時間を格納する配列です。
const int speakerPin = 8; int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4 }; int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4 };
メロディーの演奏:
for
ループはメロディーの各ノートを反復処理します。tone()
関数は、特定の期間にわたってスピーカーでノートを再生します。ノートを区別するために、ノート間に遅延が追加されます。
noTone()
関数は音を停止します。
void setup() { for (int thisNote = 0; thisNote < 8; thisNote++) { int noteDuration = 1000 / noteDurations[thisNote]; tone(speakerPin, melody[thisNote], noteDuration); int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(speakerPin); } }
空のループ関数: メロディーはセットアップで一度だけ演奏されるため、ループ関数にはコードがありません。
melody[]
とnoteDurations[]
配列のノートや持続時間を変更して、独自のメロディーを作成することをお試しください。興味があれば、さまざまな曲を演奏するためのArduinoコードを提供するGitHubリポジトリ( robsoncouto/arduino-songs )があります。そのアプローチはこのプロジェクトと異なるかもしれませんが、参考としてノートや持続時間を参照することができます。