Note
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
- エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
- 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
- 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
- 特別割引:最新製品の独占割引をお楽しみください。
- 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[]をクリックして今すぐ参加しましょう!
このレッスンでは、Arduino Unoボードと一緒に使用されるオーディオモジュールとスピーカーについて学びます。これらのコンポーネントは、音楽玩具、DIYサウンドシステム、アラーム、さらには高度な楽器など、さまざまな電子アプリケーションで広く利用されています。Arduinoとオーディオモジュール、スピーカーを組み合わせることで、シンプルながら効果的なメロディープレーヤーを作成できます。
このプロジェクトには、以下のコンポーネントが必要です。
全セットを購入するのが便利です。こちらがリンクです:
名称 | このキットのアイテム数 | リンク |
---|---|---|
Elite Explorer Kit | 300+ |
以下のリンクから個別に購入することもできます。
コンポーネント紹介 | 購入リンク |
---|---|
uno_r4_wifi |
- |
cpn_breadboard |
|
cpn_wires |
|
cpn_resistor |
|
cpn_audio_speaker |
- |
これはモノラルアンプなので、ピン8をオーディオアンプモジュールのLまたはRピンに接続できます。
10K抵抗は、高周波ノイズを減少させ、オーディオボリュームを下げるために使用されます。DACとオーディオアンプの寄生容量とのRCローパスフィルタを形成します。このフィルタは高周波信号の振幅を減少させ、高周波ノイズを効果的に減少させます。したがって、10K抵抗を追加すると、音楽が柔らかく聞こえ、望ましくない高周波ノイズが排除されます。
Note
- ファイル
17-speaker.ino
をelite-explorer-kit-main\basic_project\17-speaker
のパスで直接開くことができます。 - または、このコードをArduino IDEにコピーしてください。
コードをR4ボードにアップロードし終えると、7つの音符を含むメロディーが聞こえます。
pitchesライブラリのインクルード: このライブラリは、さまざまな音楽ノートの周波数値を提供し、コード内で音楽記譜法を使用できるようにします。
#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リポジトリ( )があります。そのアプローチはこのプロジェクトと異なるかもしれませんが、参考としてノートや持続時間を参照することができます。