AuduinoでMP3を鳴らすのに、便利な基板があります。
購入したので、機能や使い方を紹介します。
ちなみに、関連記事はこちら。
こちらは、今回の基板に出会う前。市販のMP3プレーヤーをバラして使うという荒業です。
『 FN-M16P Embedded MP3 Audio Module 』(DFPlayer Mini)― 300円程度で入手可能
今回紹介したいのはこれです。
アマゾンのおすすめ欄に表示されていて、ふとクリックして知った商品です。
一言で言うと、「電子工作でMP3を再生するためのモジュール」。
マイコンと一緒に使う事を想定されているので、Arduinoからの制御が出来ます。
単体でも使えますよ。
▼ 秋月電子で入手可能です。
メリット(良い所)
- 安い
300円程度で入手が出来る。 - アンプいらない
3Wのアンプが内蔵されてる。
コーン繋ぐだけでいいから、楽です。 - 細かい制御が簡単
以前の記事の方法では、再生・停止以外の制御ができなかった。
(トランジスタを通してリレーからON/OFFしているだけなので)
しかしこのモジュールを使えば、ランダム再生や一時停止など自由にできる。
デメリット(悪い所)
- 海外からの発送なので納期がかかる
明日欲しい!!なんて時には辛いです。
私の場合は、注文から入手まで20日程度かかりました。
アマゾンの注文画面の「お届け日数」はアテにせず、余裕をみて注文した方が良いです。
国際普通郵便なので、かなり延着することもあります。
動かしている様子
テストしてみました。

テスト仕様
SW1で再生、SW2で次の曲、SW3で停止します。
このテスト回路のArduinoのスケッチ(プログラム)は、後述しています。

microSDカードにMP3を入れます
ファイル名の詳細な命名規則は、後述のデータシートなど技術資料をご覧ください。
配布されているライブラリを使うには、SDカード直下に「mp3」フォルダを作り、その中にMP3ファイルを格納します。

動画を撮りました
ほぼカットしていませんので、全曲通してノイズもなくきれいに聞こるのがわかるかと思います。
- 再生曲は、こちらのサイトから頂きました。
「クラシック名曲サウンドライブラリー」
接続図
ブロック図
上に貼った動画のブロック図です。
Arduinoと接続して、制御しています。

3Wのアンプが内蔵されているので、コーンを繋ぐだけです。
出力に不満なら、もちろんアンプを接続することもできます。
Arduinoからは、操作したいコマンドのシリアルコマンドを送ります。
ちなみに再生や停止など基本的なコマンドなら、Arduinoのライブラリが提供されています。
プログラムがシンプルになります。
詳しくはこちらのサイトの、「Tutorial」の項目をご覧ください。
「DFPlayer library V2.0」をダウンロードしましょう。
シリアルコマンドの使い方
「シリアルコマンド」とは、FN-M16P基板への命令です。
スイッチ1を押したら再生せよ、など工作物によって様々な命令をすることになります。
(これをシンプルに扱えるようにしたものが、青枠で上述した「DFPlayer library V2.0」になります)
例えば、基板へ「フォルダとMP3ファイル名を指定して再生する」コマンドを送るとします。
この場合、コマンドは「7E FF 06 0F 00 01 01 EF」になります。
なんのこっちゃ?となりますが、命令を送ってみると動いてくれるのが分かると思います。
7EからEFまで1セットで、順番にコマンドを送ったら良いだけです。
ここで、表を見てください。

ほぼ固定で、基本的には濃い色の箇所を都度機能に応じて、書き換えることになります。
実際のプログラム例としては、こんな感じ。
このコマンドは16進数で指示しますので、頭に0xを付けています。

- 省略無しのテスト用回路のプログラムは、後述のスケッチ例をご覧ください。
命令したい機能のコマンドは、どこに書いてあるの?
こんな感じで、データシートに記載されています。
詳しくは、データシート(PDFファイルです)をご覧ください。
例えば上記で紹介したコマンド0Fも「Specify playback of a folder(フォルダを指定して再生)」として載ってます。
FN-M16P Embedded MP3 Audio Module Datasheet(PDFファイル p4)より引用
回路図
上に貼った動画の回路図はこちら。
tx、rxには、ノイズ防止のために抵抗を入れています。

上記回路を配線すると、こんな感じです。
- コーンは100円ショップ
- Arduinoの電源は9Vのスイッチングアダプターから。
- 5VはArduinoの5V端子から、DFPlayerやスイッチに供給しています。
- DFPlayerにブレッドボード2枚も使っているのは、微妙にピッチが合わなくて力づくでやると壊れそうだったからです

単体でも使える
ちなみに、Arduinoなどのマイコンを接続せず、単体で使うこともできます。
マニュアルページの「 3) I/O Mode」の回路図で試してみました。
特に問題なく再生されます。
SDカード内のフォルダ構成は、mp3/001.mp3、002.mp3・・・のようにマイコン接続時と同じでOKでした。
写真にArduinoが写ってますが、DFPlayerに供給する5Vを取っているだけです。

Arduinoのスケッチ(プログラム)の例
シリアルコマンドを指定して制御する場合
シリアルコマンドとは何ぞや?という方は、シリアルコマンドの使い方をご覧ください。
startスイッチで再生開始、nextスイッチで次の曲を再生、stopスイッチで止まります。
ライブラリを使う場合
このスケッチではnextスイッチで2曲目に行った後はBREAKしてstartスイッチの待機状態に戻ります。
SDカードには3曲入れていますが、3曲目は再生されません。
下手なプログラムの所為ですが、テストスケッチなので良しとしました。
(そのまんま使う場合は注意してください。)
技術資料
- PDFでデータシートが配布されています(英語)
制御コマンドや回路の例など、詳しく掲載されています。
[PDF] データシート - このサイトでもコンパクトにまとまっています(英語)
サイト下部のBBSで、質問する事もできるようです。
https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299
使うもの
FN-M16P(DFPlayer Mini)
▼ 秋月電子で売っています。
▼ 互換品もあるようです。名前は出品者によってまちまちですが、写真などで判断できるかと思います。Amazonだと国際普通郵便なので延着の場合があります。
microSDHCカード
MP3を入れます。
Arduino UNO
制御に使うボードです。初めての方は、まずはボード単体、USBケーブル、9Vの電源など揃えてから取り掛かると効率が良いです。