DFplayer یک ماژول ارزان قیمت با توانایی پخش فایل MP3 از روی کارت حافظه است. این ماژول را به راحتی میتوان با وصل کردن به یک اسپیکر و کارت حافظه راه اندازی کرد. ولی برای کنترل بیشتر و استفاده از دیگر ویژگی های آن میتوان با استفاده از ارتباط سریال با میکرو کنترلرها ماژول را راه اندازی کرد.
مشخصات ماژول:
پشتیبانی از نرخ نمونه برداری 48KHz,44KHz
خروجی DAC با رزولوشون 24 بیت
پشتیبانی کامل از Fat32 و حداکثر 32GB کارت حافظه
کنترل پخش به سه صورت I/O,Serial,ADC
پشتیبانی از 100 عدد فولدر با تعداد فایل 255 در هر کدام
دارای 30 سطح صدا و 6 سطح اکولایزر
کاربرد :
سیستم گویای هدایت خودرو – اعلان خطرها – دستیار صوتی برای اماکن عمومی
در جدول زیر کار هر پایه به سادگی و کامل توضیح داده شده است
شماتیک کنترل ماژول با استفاده از دو پین AD
با استفاده از کدهای زیر میتوان ماژول را به آردوینو متصل کرد و فایل های موجود در کارت حافظه را پخش و کنترل کرد. برای استفاده از برنامه ذیل باید ابتدا کتابخانه “DFRobotDFPlayerMnin” را باید نصب کرد تا کتابخانه و کدها برای آردوینو قابل شناسایی باشد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
#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; } } |