
به نام خدا
پخش کننده فایل های صوتی(mp3 player) با استفاده از آردوینو

اضافه کردن صدا و موسیقی به پروژه هایمان آنها را جذاب تر و مورد توجه تر میکند. به خصوص اگر شما از آردوینو استفاده می کنید و پین های زیادی از پین های آن خالی مانده شما به راحتی می توانید فقط با استفاده از ماژول های SD CARD و یک بلندگوی معمولی به پروژه خود صدا و یا موسیقی اضافه نمایید.
در این مقاله به شما نشان خواهیم داد که اضافه کردن صدا یا موسیقی با آردوینو چقدر آسان است.
سخت افزار مورد نیاز :
- آردوینو UNO
- ماژول SD Card Reader
- SD Card
- تقویت کننده صدا LM386
- خازن ۱۰uf دو عدد
- خازن ۱۰۰uf دو عدد
- مقاومت۱k و ۱۰k
- میکرو سوییچ ۲عدد
- برد بورد
- سیم برد بوردی
آماده سازی فایل های صدای wav :
برای پخش کردن صدا از مموری کارت با استفاده از آردوینو ما باید فایل هایی با فرمت wav آماده کنیم .چرا که برد آردوینو فقط از یک فرمت بخصوص پشتیبانی می کند که آن فرمت ، فرمت wav است. برای ساختن mp3 player با استفاده از آردوینو ، شیلد های زیادی در بازار موجود است که شما می توانید از آنها استفاده کنید. برای پخش کردن فایل های mp3 در آردوینو سایت هایی هستند که شما می توانید با استفاده از آنها هر فایل صوتی را از کامپیوتر خود به فرمت مخصوص wav تبدیل کنید.
برای تبدیل فرمت فایل صوتی به wav قدم های زیر را دنبال کنید:
قدم اول : روی لینک زیر کلیک کنید تا به وبسایت وارد شوید
http://audio.online-convert.com/convert-to-wav
قدم دوم : آردوینو فقط فایل با پسوند wav با مشخصات زیر را می تواند پخش کند.

قدم سوم: پس از ورود به داخل سایت روی “choose file” کلیک کرده و فایل مورد نظر خود را انتخاب کنید و سپس تنظیماتی که در بالا بیان شد را وارد کنید. پس از انجام مراحل فوق باید با تصویری مشابه تصویر پایین مواجه شوید.

قدم ۴ : حالا روی “Convert File” کلیک کنید . فایل شما تبدیل و پس از آن دانلود می شود.
قدم ۵ : در نهایت مموری کارت خود را فرمت کنید و فایل با پسوند wav را روی آن ذخیره کنید . حتما قبل از ریختن فایل های خود مموری کارت را فرمت کنید و همچنین نام فایل ها را در خاطر داشته باشید.
.

مدار و سخت افزار


سیگنال های صوتی تولید شده از آردوینو قابل شنیده شدن نیستند. به همین دلیل ما سیگنال های صوتی را با استفاده از LM386 تقویت می کنیم.
آمپلی فایری که در بالا نشان داده شده برای بهره ۲۰۰ طراحی شده است و (پین ۶ تقویت کننده ) با ولتاژ تغذیه ۵ ولت کار می کند که می تواند از برد آردوینو هم تغذیه شود. اگر شما می خواهید صدا را کم یا زیاد کنید می توانید ولتاژ پایه ۶ تقویت کننده را برای این منظور کم و زیاد کنید. این آی سی حد اکثر ۱۵ ولت را تحمل می کند.
ما همچنین به وسیله دو میکرو سوییچ به پین ۲ و ۳ آردوینو متصل هستیم. این سوئیچ ها برای پخش آهنگ بعدی و پخش / توقف موزیک مورد استفاده قرار می گیرند.
من این دکمه ها را فقط برای نشان دادن قابلیت های این پروژه استفاده می کنم؛ شما می توانید آهنگ را هر زمان که لازم باشد پخش کنید. در پایان نسخه آزمایشی را بررسی کنید.
شما می توانید این مدار را به طور کامل بر روی یک برد بورد پیاده کنید ، همانطور که در تصویر زیر نشان داده شده است
/*
Arduino Based Music Player
This example shows how to play three songs from SD card by pressing a push button
The circuit:
* Push Button on pin 2 and 3
* Audio Out - pin 9
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
created 25 Jun 2017
by Aswinth Raj
This example code was created for CircuitDigest.com
*/
#include "SD.h" //Lib to read SD card
#include "TMRpcm.h" //Lib to play auido
#include "SPI.h" //SPI lib for SD card
#define SD_ChipSelectPin 4 //Chip select is pin number 4
TMRpcm music; //Lib object is named "music"
int song_number=0;
boolean debounce1=true;
boolean debounce2=true;
boolean play_pause;
void setup(){
music.speakerPin = 9; //Auido out on pin 9
Serial.begin(9600); //Serial Com for debugging
if (!SD.begin(SD_ChipSelectPin)) {
Serial.println("SD fail");
return;
}
pinMode(2, INPUT_PULLUP); //Button 1 with internal pull up to chage track
pinMode(3, INPUT_PULLUP); //Button 2 with internal pull up to play/pause
pinMode(3, INPUT_PULLUP); //Button 2 with internal pull up to fast forward
music.setVolume(5); // 0 to 7. Set volume level
music.quality(1); // Set 1 for 2x oversampling Set 0 for normal
//music.volume(0); // 1(up) or 0(down) to control volume
//music.play("filename",30); plays a file starting at 30 seconds into the track
}
void loop()
{
if (digitalRead(2)==LOW && debounce1 == true) //Button 1 Pressed
{
song_number++;
if (song_number==5)
{song_number=1;}
debounce1=false;
Serial.println("KEY PRESSED");
Serial.print("song_number=");
Serial.println(song_number);
if (song_number ==1)
{music.play("1.wav",10);} //Play song 1 from 10th second
if (song_number ==2)
{music.play("2.wav",33);} //Play song 2 from 33rd second
if (song_number ==3)
{music.play("3.wav");} //Play song 3 from start
if (song_number ==4)
{music.play("4.wav",25);} //Play song 4 from 25th second
if (digitalRead(3)==LOW && debounce2 == true) //Button 2 Pressed
{
music.pause(); Serial.println("PLAY / PAUSE");
debounce2=false;
}
if (digitalRead(2)==HIGH) //Avoid debounce
debounce1=true;
if (digitalRead(3)==HIGH)//Avoid debounce
debounce2=true;
}
}
دانلود کد های پروژه :
دانلود فایل
سلام میخواستم بپرسم با آردوینو میشه فایل ویدئویی هم پخش کرد مثلاً روی یه خروجی hdmi؟ اگه آره چه فرمت هایی حداکثر با چه رزولوشن و بیت ریتی و اگه نه با چی میشه این کارو کرد؟
سلام بله میشه ولی تقریبا کاربردی نداره به خاطر سرعت پایین و رم پایین آردوینو های معمولی مثل UNO.