پخش موزیک و تقویت کننده آردینو با LM386

پخش موزیک و تقویت کننده آردینو یکی از جذاب ترین و در عین حال ساده ترین پروژه های آردینو است.

<<شما میتوانید کد پروژه به همراه آموزش کامل با کلیک بر روی “نواز سبز رنگ دانلود رایگان” دریافت کنید.>>
در پایان میتوانید فیلمی از پروژه تکمیل شده را مشاهده کنید.

 

اضافه کردن صداها یا موسیقی به پروژه ما همیشه باعث میشود که پروژه جالب و جذاب تر شود.  به خصوص اگر از Arduino استفاده می کنید به خاطر وجود پین های زیاد ، به راحتی می توانید جلوه های صوتی را به پروژه خود اضافه کنید فقط با داشتن ماژول SD card و بلندگوی معمولی.

در این مقاله به شما آموزش چگونه با استفاده از برد آردینو Arduino خود موزیک مورد علاقه ی خود را پخش کنید و افکت های مختلف را روی آن پیاده کنید.با ما همراه باشید.

 

وسایل مورد نیاز

  1. آردینو Arduino UNO
  2. ماژول SD Card Reader
  3. SD Card
  4. تقویت کننده صوتی (آمپلی فایر) LM386
  5. دو عدد خازن 10 میکرو فاراد
  6. دو عدد خازن 100 میکرو فاراد
  7. مقاومت 1K و 10K
  8. دو عدد دکمه فشاری(کلید)
  9. برد بورد Breadboard
  10. سیم

 

آماده سازی فایل صوتی با فرمت Wav

به منظور پخش فایل صوتی روی SD Card در آردینو شما باید به فایل صوتی خود را به فرمتی درآورید که آردینو شما قادر به پخش آن باشد.ماژول های بسیاری وجود دارند که میتواند فایل mp3 شما را پخش کند اما ما راه ساده تر را به شما نشان خواهیم داد.

مرحله اول: کلیک کنیدبر روی “Online Wav Converter”  تا وارد وبسایت شوید.

مرحله دوم: آردینو قادر به پخش فایل با فرمت WAV میباشد.اما اگر موارد زیر را در کانورت کردن فایل خود در نظر بگیرید بهتر است.

Bit Resolution

8 Bit

Sampling Rate

16000 Hz

Audio Channel

Mono

PCM format

PCM unsigned 8-bit

مرحله سوم:در سایتی که برای شما باز میشود بر روی “Choose File” کلیک کنید و سپس فایل خود را انتخاب کنید.دیگر گزینه ها را به مانند شکل زیر تکمیل کنید.

 

مرحله چهارم: بر روی “Convert file” کلیک کنید.فایلی که به شما دریافت میکنید باید با پسوند Wav. باشد.

مرحله پنجم:فایل ها را بر روی SD Card خود بریزید و مطمئن شوید که فایل شما به فرمت Wav باشد.بهتر است فایل یا فایل هایی را که ذخیره میکنید به اسم های ساده باشد مثلا 1 و 2 و .. زیرا به یاد آوردن و استفاده از نام آنها نیاز است.به مانند شکل زیر

 

 

ساخت پروژه پخش موزیک و تقویت کننده آردینو

 

میتوانید مدار دیاگرام پروژه “ پخش موزیک و تقویت کننده آردینو ” در شکل نظاره کنید.

 

حافظه SD Card و آردینو از طریق پروتکل SPI ارتباط برقرار میکنند.از این رو این ماژول با پین های SPI با آردینو در تماس است که در نمودار بالا قابل مشاهده است.

این نکته در جدول زیر ذکر شده که میتواند کمک حال شما باشد.

Arduino

SD card module

+5V

Vcc

Gnd

Gnd

Pin 12

MISO (Master In Slave out)

Pin 11

MOSI (Master Out Slave In)

Pin 13

SCK (Synchronous Clock)

Pin 4

CS (Chip Select)

 

اکنون آردینو قادر به پخش موزیک در حافظه از طریق پین 9 میباشد.اما سیگنال صدای تولید شده توسط آردینو در پین 9 خیلی قابل شنیدن نیست;از این رو از آمپلی فایر یا تقویت کننده LM386 استفاده میکنیم.

حال نوبت استفاده از دو دکمه فشاری است که در پینهای 2 و 3 قرار میگیرند.این سوییچ ها به منظور پخش یا قطع موزیک و برای پخش موزیک بعدی به کار گرفته میشوند.

کدنویسی برنامه

کد نویسی برنامه آخرین و مهمترین قسمت میباشد که برای شما تشریح خواهیم کرد.

مرحله اول: ما از یک کتابخانه برای ایجاد این پرژه استفاده خواهیم کرد.با کلیک بر روی لینک زیر آن را دانلود کنید.

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

06-پخش موزیک با آردینو

06-پخش موزیک با آردینو

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

اما توضیحاتی از کتابخانه TMRpcm library و توانایی و کاربرد های آن در زیر آورده شده است.

 

پخش فایل صوتی

شما میتوانید با استفاده از کد زیر هر فایل صوتی با فرمت Wav با استفاده از ماژول SD Card پخش کنید.

music.play ("3.wav")؛
// object name.play ("FileName.wav")؛

شما می توانید از این خط کد را در مکان هایی استفاده کنید که می خواهید صدای خود را فعال کنید.

مکث pause یک فایل صوتی

برای متوقف کردن فایل صوتی خود از خط زیر استفاده کنید.

music.pause ()؛
//objectname.pause ()؛

رفتن به موزیک بعدی

روش مستقیمی برای جلو عقب کردن موزیک وجود دندارد ولی شما میتوانید از روش زیر اقدام کنید.

music.play("2.wav",33); //Plays the song from 33rd second
//objectname.play(“Filename.wav”,time in second);

تنظیم کیفیت صدا

با استفاده از این کتابخانه دو ویژگی برای پخش موسیقی وجود دارد یکی به عنوان حالت عادی و دیگری 2X oversampling.

music.quality(0); //Normal Mode
music.quality(1); //2X over sampling mode

تنظیم حجم صدا

بله، شما می توانید حجم صدا از طریق نرم افزار را کنترل کنید. با استفاده از کد زیر میتوانید به سادگی حجم صدا را تنظیم کنید. حجم موسیقی هرچه بالاتر باشد  بر کیفیت صدا تاثیر می گذارد، از اینرو استفاده از کنترل سخت افزار در صورت امکان امکان پذیر است.

music.setVolume(5);        //Plays the song at volume 5
//objectname.setVolume(Volume level);

 

کار کردن با پروژه

بعد از پروگرام کردن برنامه با فشردن سوییچی که به پین 2 متصل است باید موزیک اول شما (با همان اسم ذخیره شده توسط شما) پخش خواهد شد.حال با فشردن دوباره سوییچ موزیک بعد پخش میشود.

شما با فشردن سوییچی که به پین سه وصل است نیز میتوانید موزیک در حال پخش را متوقف کنید.

01-پخش موزیک با آردینو

 

در پایان امیدواریم از این آموزش لذت برده باشید.امیدواریم با نظرات خود مارا یاری دهید و باعث دلگرمی ما شوید.

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

همچنین اگر علاقه مند به آموزش و یادگیری بیشتر (در هر زمینه از برق و برنامه نویسی )هستید میتوانید فرم نویسندگی در سایت را تکمیل کرده و با ما همکاری کنید.منتظر پاسخ شما هستیم.

کد اصلی پروژه پخش موزیک و تقویت کننده آردینو

/*
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  8  august 2017
 by Mahmood Kazemi
 This example code was created for http://barghfa.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;
}

فیلمی از پروژه تکمیل شده برای درک بهتر

مطالب مرتبط

نظرات شما

قالب ووکامرس