آردوینو Arduinoدانستنی هامطالب علمی

آموزش ساخت MP3 Player با استفاده از آردوینو و DF Player

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

در این پست آموزشی قصد داریم تا با استفاده از یک عدد Arduino UNO و ماژول DFplayer یک پخش کننده MP3 بسازیم.

 

مشخصات ماژول:

پشتیبانی از نرخ نمونه برداری 48KHz,44KHz

خروجی DAC با رزولوشون 24 بیت

پشتیبانی کامل از Fat32 و حداکثر 32GB کارت حافظه

کنترل پخش به سه صورت I/O,Serial,ADC

پشتیبانی از 100 عدد فولدر با تعداد فایل 255 در هر کدام

دارای 30 سطح صدا و 6 سطح اکولایزر

کاربرد :

سیستم گویای هدایت خودرو – اعلان خطرها – دستیار صوتی برای اماکن عمومی

1 12 1

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

3 1

با استفاده از کدهای زیر میتوان ماژول را به آردوینو متصل کرد و فایل های موجود در کارت حافظه را پخش و کنترل کرد. برای استفاده از برنامه ذیل باید ابتدا کتابخانه “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

5 1

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا