DFPlayerMini 2

DFPlayerMini・Arduinoプログラミング

DFPlayerMiniをArduinoでコントロールする。

一旦ブレットボード上で回路を組み、プログラミングし、動作を確認。

使用するのは、ピックアップワインダー製作の際に購入した

Arduinoスターターキット。

DFPlayerMiniとArduinoは

2本のシリアル接続用線とDC5vの電源線を繋いでやる。

次いで再生STARTボタンとPAUSEボタン、スピーカーを接続。

とにかく接続はシンプルだ。

ここからは、専門的だがご容赦。

ArduinoにはLibralyと呼ばれる、便利機能?があり、

これらを拝借すると簡単にプログラミングできる。

DFPlayerMiniとArduinoはシリアル接続するので、

Libraly<SoftwareSerial>を読み込む。

次にDFPlayerを制御するためのLibraly<DFRobotDFPlayerMini>を読み込む。

void loop部分は2番のSWがONすると音声ファイルが再生され続け、

3番のSWがONすると1時停止するスケッチ(プログラム)。

ここまでのプログラミングは初心者でも可能だろう。

だが、このプログラムでは、おもちゃのサウンドガンと同様の機能にならない。

サウンドガンは7種類の効果音を内蔵しており、

トリガーを引けば効果音が出て、トリガーを戻すまで音は鳴り続ける。

再びトリガーを引けば、二番目の効果音が出て、

という具合に7種類の効果音がループする。

1つのスイッチのみを使用し、

そのスイッチを押している間だけ音声を再生し、離せば再生が止まり、

再びスイッチを押せば、次の音声ファイルが再生され、

最終トラックが再生されれば、先頭の音声ファイルに戻るように、

ループするプログラムを作成する必要がある。

ブレットボード上のスイッチを1つにして、プログラムを組み直す。

色々とプログラミングしたが、

スイッチのON/OFFの判定が曖昧なため上手くいかない。

そこで再び、便利機能のLibralyを頼ることに。

Library<ezButton>を読み込んで使用。

問題は一挙に解決。

void loop部分だが、僅か5行で目的の機能を実現。

ボタンが押されると次のトラックが再生され、

ボタンがRelease(離される)されるとPause(1時停止)。

この手のボタン系Libralyは複数あるが、

最もシンプルなezButtonが一番使い易いかもしれない。