注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

👉 私たちと一緒に探索し、創造する準備はできていますか?[ ここ]をクリックして今すぐ参加しましょう!

デジタル・アナログ・コンバータ(DAC)

Arduino Uno R4 WiFiには、内蔵のDAC(デジタル・アナログ・コンバータ)機能が搭載されています。DACはデジタル信号をアナログに変換するために不可欠であり、オーディオ処理、アナログ信号生成など、精密なアナログ出力を必要とするアプリケーションで特に重要な機能です。

Uno R4 WiFiのDACは最大12ビットの分解能を誇り、PWMピンの性能を上回る真のアナログ出力能力を提供します。

../_images/07_dac.png

DACを使用して音楽を再生する

回路図

../_images/07_dac_bb.png

コードのアップロード

elite-explorer-kit-main\r4_new_feature\07-dac にある 07-dac.ino ファイルを開くか、以下のコードをArduino IDEに貼り付けてください。

注釈

正常な動作を確保するために、コードと同じディレクトリに pitches.h ファイルを配置してください。

このプロジェクトは、ArduinoとDAC(デジタル・アナログ・コンバータ)を活用して、アイコニックなスーパーマリオブラザーズのテーマ曲を再生します。これには、正弦波生成用の analogWave ライブラリと、音符の周波数を定義するための pitches.h ライブラリが使用されています。

  • melody[]: この配列には演奏する音符とその持続時間が含まれています。音符は事前定義のピッチで表され(例: NOTE_E5 )、持続時間は拍(例:4はクォーターノートを示します)で表されます。melody[] 配列内の音符と持続時間を変更して、独自のメロディを試すことができます。興味があれば、GitHub上に(robsoncouto/arduino-songs)というリポジトリがあり、さまざまな曲を再生するためのArduinoコードが提供されています。彼らのアプローチはこのプロジェクトと異なるかもしれませんが、彼らの音符と持続時間を参照できます(対応するトラック内の melody[] をこのプロジェクトのコードで置き換えるだけです)。

  • tempo: このプロジェクトのテンポは200 BPM(分速ビート)に設定されており、各音符の持続時間を計算するために使用されます。この値を変更すると曲の演奏速度が変わります。

  • Sine Wave Generator: analogWave ライブラリの sine 関数は、10 Hzの正弦波ジェネレータを初期化し、DACを介して音符を出力するために使用されます。

  • Note Duration: 設定したテンポと各音符の拍数に基づいて、各音符の持続時間が計算されます。

  • Play and Pause: 各音符は計算された持続時間の85%再生され、音符間を区別するために15%の一時停止が挿入されます。

  • Loop: メロディが完了すると、コードは自動的にリセットされ、再び再生が開始されます。

これは、Arduinoと外部ハードウェア(DAC)を使用して音楽を生成する方法を示す例です。また、音楽再生のロジックを簡素化するために配列とループの使用方法も示しています。

参照