آموزش ساخت MP3 Player با استفاده از آردوینو و DF Player
DFplayer یک ماژول ارزان قیمت با توانایی پخش فایل MP3 از روی کارت حافظه است. این ماژول را به راحتی میتوان با وصل به یک اسپیکر و کارت حافظه راه اندازی کرد. ولی برای کنترل بیشتر و استفاده از دیگر ویژگی های آن میتوان با استفاده از ارتباط سریال با میکرو کنترلرها ماژول را راه اندازی کرد.
در این پست آموزشی قصد داریم تا با استفاده از یک عدد Arduino UNO و ماژول DFplayer یک پخش کننده MP3 بسازیم.
مشخصات ماژول:
پشتیبانی از نرخ نمونه برداری 48KHz,44KHz
خروجی DAC با رزولوشون 24 بیت
پشتیبانی کامل از Fat32 و حداکثر 32GB کارت حافظه
کنترل پخش به سه صورت I/O,Serial,ADC
پشتیبانی از 100 عدد فولدر با تعداد فایل 255 در هر کدام
دارای 30 سطح صدا و 6 سطح اکولایزر
کاربرد :
سیستم گویای هدایت خودرو – اعلان خطرها – دستیار صوتی برای اماکن عمومی
شماتیک کنترل ماژول با استفاده از دو پین AD
با استفاده از کدهای زیر میتوان ماژول را به آردوینو متصل کرد و فایل های موجود در کارت حافظه را پخش و کنترل کرد. برای استفاده از برنامه ذیل باید ابتدا کتابخانه “DFRobotDFPlayerMnin” را باید نصب کرد تا کتابخانه و کدها برای آردوینو قابل شناسایی باشد.
نصب کتابخانه ها نیز در جلسه های آموزش گام به گام Arduino آموزش داده شده که میتوانید به آن مراجعه کنید.{لینک آموزش نصب کتابخانه}
کد های آردوینو:
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" SoftwareSerial mySoftwareSerial(10, 11); DFRobotDFPlayerMini myDFPlayer; void printDetail(uint8_t type, int value); void setup() { mySoftwareSerial.begin(9600); Serial.begin(115200); Serial.println(); Serial.println(F("MP3 Player")); Serial.println(F("Initializing ...)); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println(F("Unable to begin:")); Serial.println(F("1.Please recheck the connection!")); Serial.println(F("2.Please insert the SD card!")); while(true); } Serial.println(F("MP3 online")); myDFPlayer.volume(10); myDFPlayer.play(1); } void loop() { static unsigned long timer = millis(); if (millis() - timer > 360000) { timer = millis(); myDFPlayer.next(); } if (myDFPlayer.available()) { printDetail(myDFPlayer.readType(), myDFPlayer.read()); } } void printDetail(uint8_t type, int value){ switch (type) { case TimeOut: Serial.println(F("Time Out!")); break; case WrongStack: Serial.println(F("Stack Wrong!")); break; case DFPlayerCardInserted: Serial.println(F("Card Inserted!")); break; case DFPlayerCardRemoved: Serial.println(F("Card Removed!")); break; case DFPlayerCardOnline: Serial.println(F("Card Online!")); break; case DFPlayerPlayFinished: Serial.print(F("Number:")); Serial.print(value); Serial.println(F(" Play Finished!")); break; case DFPlayerError: Serial.print(F("DFPlayerError:")); switch (value) { case Busy: Serial.println(F("Card not found")); break; case Sleeping: Serial.println(F("Sleeping")); break; case SerialWrongStack: Serial.println(F("Get Wrong Stack")); break; case CheckSumNotMatch: Serial.println(F("Check Sum Not Match")); break; case FileIndexOut: Serial.println(F("File Index Out of Bound")); break; case FileMismatch: Serial.println(F("Cannot Find File")); break; case Advertise: Serial.println(F("In Advertise")); break; default: break; } break; default: break; } }
شماتیک اتصال Arduino و DFplayer