DFPlayer miniのノイズを低減する 1月 13, 2026 リンクを取得 Facebook × Pinterest メール 他のアプリ 全く唐突なのですが、DFPlayer miniというmicroSDカード搭載のMP3演奏モジュールを以前購入して、UARTでポケコンやらMSX0やらから操作するMP3プレイヤーなどを作って遊んでいたことがありました。 作って遊んでいる分にはそんなに気にしていなかったのですが、ちゃんと聴こうとするとノイズが結構乗ってしまって、ちょっと厳しいなあと思ってそのまま放置していました。 で、何を思ったか突然使いたくなって、引っ張り出してみましたが、前のままですから当然ノイズもそのまま。 なんとかできないものかとAIに聞いてみたところ、 - MCUとDFPlayer miniのRXピンの間に1kΩ~2kΩの抵抗を入れる - DFPlayer miniのVCCとGNDの間にバイパスコンデンサ(100~470μF)を入れる というアドバイスが出てきました。 割合簡単な対応だったので、ダメ元でやってみたところ、ノイズがテキメンに減少しました! ただ、Aruduinoシールド方式で下にMCU、DFPlayer mini、オペアンプ、イヤフォンジャック、上にOLEDディスプレイとON/OFFスイッチや操作ボタンなどを使ったものについては、~~シールドのピンなどがノイズ源になってしまっているきらいがあって、この対策を施してもまだ微妙にノイズが数秒おきに少し乗る状態が残ってしまいました。上側のディスプレイとボタンのシールドを外して単純に1曲目から演奏させれば、ほとんどノイズが載らないので、親亀-子亀の設計だとある程度のノイズは避けられないのかもしれません。~~ **(追記)これはシールドのピンが原因なのではなく、親亀子亀の自作プレイヤーは設計上、OLEDに情報表示するためにDFPlayer側に情報を取りに行く(とDFPlayer側から応答が返る)仕組みになっていたため、RXだけでなく、TXピンとMCUの間にも抵抗が必要だったようです。** さらに、処理をループしながら、トラック番号の取得、ボリュームの取得、演奏状態の取得をUARTでぶん回していたので、これもノイズの原因となっていたようです。 これについては、以下のように対策しました。 - トラック番号の取得は、トラックが移動したときのみ行う - ボリュームの取得は、ボリュームを変更したときのみ行う - 演奏状態の取得はUARTを使わず、DFPlayer miniのBUSYピンの状態をMCUで検出して判定する(BUSY=HIGHだと演奏停止) 余談ですが、以前のエントリで互換品について言及していますが、ものによってはステレオ出力のふりしてモノラルだったりとか、UARTの信号を全く受け付けないとか、品質がかなり怪しい感じのものがありましたので、Amazonではなく秋月さんだったり共立エレショップさんだったりの正規品が多少値は張りますが安全です。Amazonは「DFPlayer mini」と書いてあっても正規品かどうかはかなり怪しいので、これに関してはAmazonは使わないようにしています。 コメント
コメント
コメントを投稿