آموزش راه اندازی ماژول پخش صدا DY-SV17F با آردوینو

فهرست مطالب

مقدمه

آیا به دنبال افزایش قابلیت‌های صوتی به پروژه‌های خود هستید؟ این آموزش را از دست ندهید!
در این آموزش، شما را با یکی از ماژول‌های کاربردی پخش صدا به نام DY-SV17F و نحوه راه‌اندازی و تنظیم آن با استفاده از آردوینو آشنا خواهیم کرد. چه از مبتدیان در زمینه الکترونیک باشید، چه یک توسعه‌دهنده حرفه‌ای، این آموزش به شما کمک خواهد کرد که این ماژول را به راحتی راه‌اندازی کرده و فایل‌های صوتی خود را پخش کنید.

آنچه در این آموزش یاد می‌گیرید

• آشنایی با ماژول پخش صوت DY-SV17F
• آشنایی با نحوه برقراری ارتباط UART با آردوینو

ویژگی‌های ماژول پخش صدای DY-SV17F

ماژول DY-SV17F MP3 Player، دارای چندین ویژگی جذاب است که آن را از دیگر ماژول‌های پخش صوت متمایز می‌کند.
برخی از این ویژگی‌ها عبارتند از: خروجی صوتی تقویت شده 5 وات، حافظه داخلی 4MB و، از همه مهمتر، امکان کنترل آن از طریق 3 روش (ارتباط سریال، دیجیتال و دکمه‌ای).
برای اطلاعات بیشتر، می‌توانید دیتاشیت ماژول DY-SV17F را از این لینک دانلود کنید.

معرفی پایه‌ها (Pinout) و مودهای DY-SV17F

جهت تنظیم مودهای کاری، باید این پایه‌ها را به صورت زیر تنظیم کنید:

مود UART

پایه‌های CON1 تا CON3، باید به ترتیب به GND، GND و 5v وصل شود. در این حالت، پایه‌های IO0 و IO1، به عنوان TXD و RXD عمل می‌کنند.

مود I/O Integrated 0

پایه‌های CON1 تا CON3 را باید به ترتیب به GND، GND و GND وصل کنید. این مد 255 فایل صوتی را پشتیبانی می‌کند. با تنظیم پایه‌های I/O، یکی از فایل‌ها انتخاب و پخش می‌شود. با آزاد کردن پایه‌ها (HIGH کردن)، فایل صوتی تا انتها پخش شده و سپس متوقف می‌شود.
اگر در حین پخش فایل، فایل دیگری انتخاب شود، فایل جدید باز شده و تا انتها پخش خواهد شد.
در صورتی که ورودی‌های I/O روی فایلی تنظیم بماند، پس از پایان پخش فایل صوتی، پخش آن دوباره از اول آغاز می‌شود.
پایه CON3، در حین پخش فایل صوتی، به صورت Output عمل کرده و خروجی آن HIGH است. با قطع شدن پخش فایل صوتی، خروجی LOW می‌شود.

مود I/O Integrated 1

پایه‌های CON1 تا CON3 را باید به ترتیب به 5v ، GND و GND وصل کنید. این مد هم از 255 فایل صوتی پشتیبانی می‌کند. با تنظیم پایه‌های I/O، یکی از فایل‌ها انتخاب و پخش می‌شود. با آزاد کردن پایه‌ها (HIGH کردن)، پخش فایل صوتی متوقف می‌شود.
در صورتی که ورودی‌های I/O روی فایلی تنظیم بماند، پس از پایان پخش فایل صوتی، پخش آن دوباره از اول آغاز می‌شود.
پایه CON3، در حین پخش فایل صوتی به صورت Output عمل کرده و خروجی آن HIGH است. با قطع شدن پخش فایل صوتی، خروجی نیز LOW می‌شود.

مود I/O Independent 0

پایه‌های CON1 تا CON3 را باید به ترتیب به GND، 5v و GND وصل کنید. این مد از 8 فایل صوتی پشتیبانی می‌کند. با LOW کردن هریک از پایه‌های I/Ox (x: شماره پایه)، فایل صوتی با همان شماره پخش می‌شود. با آزاد کردن پایه‌ها (HIGH کردن)، فایل صوتی تا انتها پخش شده و سپس متوقف می‌شود.
اگر در حین پخش فایل، فایلی دیگر انتخاب شود، فایل جدید باز شده و تا انتها پخش خواهد شد.
در صورتی که ورودی‌های I/O روی فایلی تنظیم بماند، پس از پایان پخش فایل صوتی، پخش آن دوباره از اول آغاز می‌شود.
پایه CON3، در حین پخش فایل صوتی به صورت Output عمل کرده و خروجی آن HIGH است. با قطع شدن پخش فایل صوتی، خروجی نیز LOW می‌شود.

مود I/O Independent 1

پایه‌های CON1 تا CON3 را باید به ترتیب به 5v، 5v و GND وصل کنید. این مد هم از 8 فایل صوتی پشتیبانی می‌کند. با LOW کردن هریک از پایه‌های I/Ox (x: شماره پایه)، فایل صوتی با همان شماره پخش می‌شود. با آزاد کردن پایه‌ها (HIGH کردن)، پخش فایل صوتی در همان لحظه متوقف می‌شود.
در صورتی که ورودی‌های I/O روی فایلی تنظیم بماند، پس از پایان پخش فایل صوتی، پخش آن دوباره از اول آغاز می‌شود.
پایه CON3، در حین پخش فایل صوتی به صورت Output عمل کرده و خروجی آن HIGH است. با قطع شدن پخش فایل صوتی، خروجی نیز LOW می‌شود.

مود Standard MP3

پایه‌های CON1 تا CON3 را باید به ترتیب به 5v ، GND و 5v وصل کنید. در این حالت، پایه‌های I/O0 تا I/O4 به ترتیب به عنوان کلید NEXT/V+، PREV/V-، Play/Pause/MODE، EQ (اکولایزر) و RPT (تکرار) عمل می‌کنند.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

راه‌اندازی ماژول DY-SV17F در مود UART

گام اول : سیم‌بندی

گام دوم : کد

کد زیر برای راه‌اندازی ماژول Dy-SV17F در مود سریال نوشته شده است.
ابتدا این کتابخانه را دانلود کرده و در نرم‌افزار آردوینو نصب کنید.

سپس کد زیر را بر روی آردوینوی خود آپلود نمایید.
راهنمای کد در کنار آن به صورت کامنت درج شده است.

				
					/*   
modified on June 5, 2018
by SnijderC Chris from github.com/SnijderC/dyplayer/tree/master/examples/PlaySoundByNumber
<blockquote class="wp-embedded-content" data-secret="w4VzjpKD7l"><a href="https://electropeak.com/learn/">Home</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak" src="about:blank" data-secret="w4VzjpKD7l" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" data-rocket-lazyload="fitvidscompatible" data-lazy-src="https://electropeak.com/learn/embed/#?secret=d2Nt3DoE57#?secret=w4VzjpKD7l"></iframe><noscript><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak" src="https://electropeak.com/learn/embed/#?secret=d2Nt3DoE57#?secret=w4VzjpKD7l" data-secret="w4VzjpKD7l" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></noscript> 
*/ 
#include <Arduino.h>
#include "DYPlayerArduino.h"

// Initialise the player, it defaults to using Serial.
DY::Player player;

void setup() {
  player.begin(); //initialize the module
  player.setVolume(30); // Set Volume to 100%
}

void loop() {
  player.playSpecified(1); //Play specified file
  delay(5000); //wait for 5 second
} 
				
			

راه‌اندازی ماژول DY-SV17F در مود I/O Integrated 0/1

گام اول : سیم‌بندی

مطابق مدار زیر، سیم‌ها را وصل کنید. این مدار برای حالت I/O Integrated 0 است. برای تغییر به حالت I/O Integrated 1، پایه مقاومتی را که یک سمت آن به سیم صورتی متصل شده، از GND جدا کرده و به 5v وصل کنید.

گام دوم : کد

کد زیر را بر روی آردوینوی خود آپلود نمایید.
راهنمای کد در کنار آن به صورت کامنت درج شده است.

				
					
int TrackNo = 0x01;
unsigned long previousMillis = 0;
const long interval = 1000;

void setup() {
  DDRC = 0xFF; //Setup Pins 0-7 as output
  pinMode(8, INPUT_PULLUP); //Next track
  pinMode(9, INPUT_PULLUP); //Previous track
  PORTC = TrackNo; //Select and play track 1
}

// the loop function runs over and over again forever
void loop() {  
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval)//Play for 10 seconds
  {    
    if (TrackNo = 255)
      TrackNo = 0;
    TrackNo = TrackNo + 1;  //change track (increase track number)
    PORTC = TrackNo; //Select and play track with number 1 to 255
  }
  if(digitalRead(8) == LOW)
  {
    if (TrackNo = 255)
      TrackNo = 0;
    TrackNo = TrackNo + 1;
    PORTC = TrackNo; //Select and play track with number 1 to 255
    delay(10);
  }
  if(digitalRead(9) == LOW)
  {
    if (TrackNo = 0)
      TrackNo = 256;
    TrackNo = TrackNo - 1;
    PORTC = TrackNo; //Select and play track with number 1 to 255
    delay(10);
  }
}

				
			

این کد، فایل شماره 1 تا 255 را به ترتیب به مدت 10 ثانیه پخش می‌کند. در حین پخش، اگر پایه‌های 8 یا 9 به واسطه کلید به GND وصل شوند، شماره فایل صوتی در حال پخش، 1 عدد افزوده یا کاسته می‌شود.

راه‌اندازی ماژول DY-SV17F در مود I/O Independent 0/1

گام اول: سیم‌بندی

لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطر آنچنان که لازم اسمطابق تصویر زیر، سیم کشی را انجام دهید. این مدار برای حالت I/O Independent 0 است. برای تغییر به حالت I/O Independent 1، پایه مقاومتی را که یک سمت آن به سیم صورتی متصل شده، از GND جدا کرده و به 5v وصل کنید.

گام دوم : کد

کد زیر را بر روی آردوینوی خود آپلود نمایید.
راهنمای کد در کنار آن به صورت کامنت درج شده است.

				
					int Number = 0;
int TrackNo = 0x01;
unsigned long previousMillis = 0;
const long interval = 10000;

void setup() {
  DDRC = 0xFF; //Setup Pins 0-7 as output
  pinMode(8, INPUT_PULLUP); //Next track
  pinMode(9, INPUT_PULLUP); //Previous track
  PORTC = TrackNo; //Select and play track 1
}

// the loop function runs over and over again forever
void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval)//Play for 10 seconds
  {
    if (Number = 7)
      Number = 0;
    else
      Number = Number + 1;  //change track (increase track number)
      TrackNo = 0xFF - 2 ^ Number;
    PORTC = TrackNo; //Select and play track with number 1 to 8
  }
  if (digitalRead(8) == LOW)
  {
    if (Number = 7)
      Number = 0;
    else
      Number = Number + 1;
    TrackNo = 0xFF - 2 ^ Number;
    PORTC = TrackNo; //Select and play track with number 1 to 8
    delay(10);
  }
  if (digitalRead(9) == LOW)
  {
    if (Number = 0)
      Number = 8;
    Number = Number - 1;
    TrackNo = 0xFF - 2 ^ Number;
    PORTC = TrackNo; //Select and play track with number 1 to 8
    delay(10);
  }
}

				
			

این کد، فایل شماره 1 تا 8 را به ترتیب به مدت 10 ثانیه پخش می‌کند. در حین پخش، اگر پایه‌های 8 یا 9 برد آردوینوی به واسطه کلید به GND وصل شوند، شماره فایل صوتی در حال پخش، 1 عدد افزوده یا کاسته می‌شود.

راه‌اندازی ماژول DY-SV17F در مود I/O Independent 0/1 با کلید

مطابق تصویر زیر، سیم‌کشی را انجام دهید. این مدار برای حالت I/O Independent 0 است.

با فشردن هریک از کلیدها، فایل‌های صوتی 00001.mp3 تا 00008.mp3 پخش می‌شود.

راه‌اندازی ماژول DY-SV17F در مود Standard MP3

مطابق تصویر زیر، سیم‌کشی را انجام دهید.

عملکرد هریک از کلیدهای فشاری متصل به ماژول، در کنار آن نوشته شده است. با این سیم کشی، می‌توانید یک دستگاه پخش‌کننده فایل mp3 بسازید.

یک گام جلوتر

در این آموزش، با انواع روش‌های راه‌اندازی ماژول پخش صوت DY-SV17F آشنا شدید. مشاهده کردید که این ماژول را می‌توانید تنها با یک دکمه راه‌اندازی کنید یا برای کاربردهای حرفه‌ای‌تر، از میکروکنترلر استفاده کنید. بنابراین این ماژول کاربردهای متنوعی دارد، از جمله: سیستم پخش آهنگ آسانسور، ساخت عروسک و اسباب بازی موزیکال، ربات سخنگو و …

آموزش های مشابه

Comments (17)

  • armin Reply

    سلام وقت بخیر به جای uno r3 میتونیم از برد پیکو استفاده کنیم ؟

    جولای 27, 2021 at 9:15 ب.ظ
    • مهران ملکی Reply

      سلام وقت شما هم بخیر،
      بله در حالت کلی امکانپذیره اما نه با این کد و سیم‌بندی، در اون صورت شما باید برنامه‌نویسی و نحوه اتصال رو متناسب با برد جدید انجام بدید.

      جولای 28, 2021 at 8:53 ق.ظ
  • محسن Reply

    سلام. برای انتقال فایل mp3 پورت میکرو USB رو با کابل USB مستقیم به USB لپ تاپ وصل میکنیم؟! من این کارو کردم برد نزدیک بود بسوزه که درش اوردم. لطفا راهنمایی کنید.ممنون.

    ژانویه 31, 2023 at 7:11 ب.ظ
  • محسن Reply

    سلام،
    من این ماژول رو با کابل به لپ تاپ وصل کردم تا فایل mp3 رو روش بریزم که متوجه شدم داره داغ میکنه سریع کابل رو درش اوردم. بعد چند دقیقه دوباره امتحان کردم ولی دیگه عکس العملی نشون نداد. نه دفعه اول نه دوم هیچ درایوی رو روی سیستم نشون نداد. چرا اینجوری شد؟یعنی ماژول سوخته؟! ممنون میشم اگه راهنمایی کنید.

    با تشکر از سایت خوبتون!

    فوریه 1, 2023 at 4:39 ب.ظ
    • علی عبدالملکی Reply

      سلام
      به احتمال زیاد ماژولتون سوخته بله

      فوریه 21, 2023 at 4:46 ب.ظ
  • مجید Reply

    سلام من میخواستم با یه ماژول کاهنده و یه باتری قلمی و اسپیکر راش بندازم فقط سوالم. اینه خروجی ماژول کاهنده باید چطوری متصل بشه که داغ نکنه یا مشکل نداشته باشه ماژول یعنی مثبت به قیمت ولت و منفی به قسمت gnd وصل بشه کافیه یه باید مثل عکس که شما گذاشتین با ادرینو وصل کردین باید دو تا از قسمت تا رو هر کدوم پوشش بده ؟

    جولای 23, 2023 at 3:58 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      در این ماژول از باتری قلمی استفاده نمی شود. باتری قلمی 1.5 ولت می باشد و در صورت استفاده حداقل 3 عدد از انها را باید سری کنید تا ولتاژ 4.5 ولت را به شما بدهد و نیازی به کاهنده ندارید.
      اگر منظور شما باتری های لیتومی می باشد آنها ولتاژ بین 3 الی 4.2 ولت را تولید میکنند و در این مورد نیز از ماژول کاهنده برای این موضوع نیز استفاده نمی شود. شما باتری را به صورت مستقیم به پایه های تغذیه 5 ولت وصل کنید باید اوکی باشد و فقط کمی افت حجم صدا را باید تجربه کنید. که البته برای این مورد پیشنهاد میکنم از یکی از دوماژول زیر برای این موضوع استفاده کنید.
      ماژول شارژ / دشارژ باتری لیتیومی با خروجی 5V 1A مناسب برای ساخت پاور بانک
      ماژول شارژ/دشارژ باتری لیتیومی SY3500 با خروجی 5V 1A مناسب برای ساخت پاور بانک

      جولای 24, 2023 at 9:04 ق.ظ
      • مجید Reply

        سلام مجدد و ممنون از راهنمایی
        ببخشید من بالا درست اشاره نکردم
        من باتری کتابی 9 ولت دارم که با یک کاهنده به 5 ولت رسوندم
        فقط خروجی کاهنده مثبت به قسمت 5 ولت زدم و منفی به قسمت gnd متصل کردم و برای اجرا به صورت پشت هم یک سیم از فایل یک به میکرو سویچ وصل کردم که از میکرو سویچ به قسمت gnd متصل میشه و با قطع و وصل شدن میکرو سویچ آهنگ پخش میشه
        تنها مورد اینه که آی سی ها موقع اجرا داغ میشن
        میخوام بدونم طبیعی این مورد یا جایی اشتباه شده ؟

        جولای 26, 2023 at 9:20 ب.ظ
        • محمد دمیرچی Reply

          با سلام
          با چه کاهنده ای این تبدیل ولتاژ را انجام میدهید.
          همچنین برای تست این موضوع که ماژول شما آسیب ندیده باشد از روش زیر استفاده کنید
          با اتصال فیش USB ماژول به پاور بانک یا شارژر گوشی، تغذیه ماژول وصل می شود و می توانید ماژول را مورد بررسی قرار بدهید.
          توجه داشته باشید که به سیستم (PC) وصل نکنید.

          اکتبر 25, 2023 at 9:45 ق.ظ
  • متین Reply

    سلام روز بخیر بنده این ماژول رو از سایت خودتون سفارش دادم .
    آیا میشه بدون استفاده از اردوینو ، فقط با وصل کردن اسپیکر و باتری به این ماژول یک فایل صوتی پخش بشه؟
    یا حتما باید برای پخش کردن فایل صوتی از اردوینو استفاده کرد

    اکتبر 23, 2023 at 4:02 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      آموزش به زودی به روز رسانی می شود و نحوه راه اندازی بدون آردوینو نیز اضافه می شود.
      شما می توانید از طریق این لینک سیم کشی اقدام به راه اندازی بدون آردوینو بکنید.
      اگر سوال دیگری در این باره داشتید در خدمت هستم

      اکتبر 25, 2023 at 9:35 ق.ظ
  • امیر محمد بابائی Reply

    سلام من از این برد در حالت independent استفاده میکنم ولی متاسفانه leakage داره، ینی وقتی هم که برد داره کار نمیکنه 14mA از باطری میکشه، شما راحی سراغ دارین که جلوشو بگیرم؟ چون میخوام از باطری استفاده کنم این مقدار leakage واقعا اذیت کنندست.

    فوریه 3, 2024 at 2:16 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      در این شرایط بسته به شرایط شما می توان از چیندین روش استفاده کرد.
      مورد اول استفاده از یک کلید تا برق ورودی را در زمان هایی که نمیخواهید قطع کنید.
      مورد دیگر می توانید از با یک مدار rc و یک ترانزیستور p-ch در زمان هایی که کلید را فشار میدهید این ترازیستور را فعال کند و ماژول شروع به پخش صدا بکند و پس از زمان مشخصی که با مدار rc تایین میکنید این ترازیتسور را خاموش بکند تا جریان کشی بسته بشود.
      در صورتی که روش دوم یا روش های دیگری را میخواهید استفاده کنید پیشنهاد میکنم در انجمن سوال خود را مطرح کنید تا بتوانیم با توجه به شرایط و عکس شما را راهنمایی بنماییم.

      فوریه 3, 2024 at 12:22 ب.ظ
  • امیر Reply

    با سلام و خسته نباشید.
    آیا می‌تونم برای این برد از 4 باتری قلمی استفاده کنم؟ میدونم ولتاژ استاندارد 5 ولت هست ولی وقتی از سه باتری قلمی استفاده میکنم صدای پخش شده کمی نازک میشه، حتی باتری 9 ولت با رگولاتور هم جواب دلخواهمو نمیده اما با چهار باتری قلمی به درستی کار میکنه، فقط میخوام مطمئن بشم که مدار آسیب نبینه .

    فوریه 12, 2024 at 9:16 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      به دلیل اینکه دیتاشیت درستی برای IC روی این محصول نیست نمیشود با اطمینان گفت، اما به احتمال بالا مشکلی نخواهید داشت.

      فوریه 13, 2024 at 9:38 ق.ظ
  • مسیحا فلاح Reply

    سلام وقت بخیر.بنده میخواستم فقط یک اهنگ در این ماژول بریزم و با یک اسپیکر ۳ وات پخش بشه.ایا داعم نیاز به اتصال اردویینو داره برای پخش؟یا فقط یک بار موزیک رو وارد حافظه ماژول میکنیم و با هربار اتصال تغذیه خودش پخش میشه؟

    مارس 24, 2024 at 3:19 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      بله می توانید بدون وصل کردن به آردوینو نیز کاری کنید که صدا موجود در حافظه را پخش کند.
      برای این مورد دیتاشیت که در آموزش آماده است را دانلود کنید و مطالعه کنید.

      مارس 24, 2024 at 11:29 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.