0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ESP32でDY-SV17FをUARTで使おう

Last updated at Posted at 2021-11-22

MP3サウンドモジュールDY-SV17をESP32で使ってみましょう。

DY-SV17Fとは

フラッシュ内蔵のMP3サウンドモジュールです。
類似製品としてSDカードタイプのDFPlayerや同種類製品としてJQ6500 などがあります。
DSC_0856 (2).JPG

DY-SV17の使い方

スイッチでスタンドアローンコントロールしたり、UARTでコントロールしたり出来ます。
まずは、USBでフラッシュメモリに音源を用意しましょう。
なお、ファイル名は00001.MP3~とするようです。

UARTで使う

CON1,CON2をプルダウン
CON3をプルアップします。
この状態で、5Vの入力とUART接続することでArduinoからコントロールできます。

ESP32で使う

ESP32では以下ライブラリを使ってコントロールしようとしましたが素直にUARTで使う事が出来ませんでした。
https://github.com/SnijderC/dyplayer
この為、TXのみでコントロールするプログラムを作ってみました。
初めにUARTの中身をUART tuning toolを使って見てみましょう。
DY-SV17F manual & Datasheet
http://attach01.oss-us-west-1.aliyuncs.com/IC/Datasheet/13441.rar
スクリーンショット 2021-11-21 121116.png

UART通信の中身

DY-SV17FはUSBフラッシュ以外にSDカードなどを使えるICにが載っています。
まずは、フラッシュで動作するコマンドを送ります。
そのうえで、再生するトラックを指定します。

回路構成

ESP32の15ピンをDY-SV17FのRXにつなぎ
CON1,CON2をプルダウン
CON3をプルアップ
電源は5Vを入力します。

プログラム内容

UART tuning toolで送信するコマンドは以下です。
停止

0xAA, 0x04, 0x00, 0xAE

1曲目(0xXX の6個目が変化します)

0xAA, 0x16, 0x03, 0x02, 0x00, 0x01, 0xC6

2曲目

0xAA, 0x16, 0x03, 0x02, 0x00, 0x02, 0xC7

3曲目

0xAA, 0x16, 0x03, 0x02, 0x00, 0x03, 0xC8

UARTのポートはRXがなく、TXだけとするので-1としました。

DY_TX.begin(9600, SERIAL_8N1,-1, 15);

プログラム

HardwareSerial  DY_TX (1); // RX, TX
byte SOUND_1_MUSIC[]  = {0xAA, 0x16, 0x03, 0x02, 0x00, 0x01, 0xC6};
byte SOUND_2_MUSIC[]  = {0xAA, 0x16, 0x03, 0x02, 0x00, 0x02, 0xC7};
byte SOUND_3_MUSIC[]  = {0xAA, 0x16, 0x03, 0x02, 0x00, 0x03, 0xC8};
byte SOUND_STOP[]  = {0xAA, 0x04, 0x00, 0xAE};

void setup() {
  DY_TX.begin(9600, SERIAL_8N1,-1, 15);
  Serial.begin(9600);
}
void loop() {
  Serial.println("TRACK 1");
  DY_TX.write(SOUND_1_MUSIC, sizeof(SOUND_1_MUSIC));
  delay(5000);
  Serial.println("TRACK Stop");
  DY_TX.write(SOUND_STOP, sizeof(SOUND_STOP));
  delay(2000);
  Serial.println("TRACK 2");
  DY_TX.write(SOUND_2_MUSIC, sizeof(SOUND_2_MUSIC));
  delay(5000);
  Serial.println("TRACK Stop");
  DY_TX.write(SOUND_STOP, sizeof(SOUND_STOP));
  delay(2000);
  Serial.println("TRACK 3");
  DY_TX.write(SOUND_3_MUSIC, sizeof(SOUND_3_MUSIC));
  delay(5000);
  Serial.println("TRACK Stop");
  DY_TX.write(SOUND_STOP, sizeof(SOUND_STOP));
  delay(2000);
}

以上でコントロールできます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?