جدول المحتويات:

مشغل MP3 مع اردوينو: 6 خطوات
مشغل MP3 مع اردوينو: 6 خطوات

فيديو: مشغل MP3 مع اردوينو: 6 خطوات

فيديو: مشغل MP3 مع اردوينو: 6 خطوات
فيديو: تشغيل ام بي ثري مع الاردوينو| MP3 module with arduino 2024, شهر نوفمبر
Anonim
Image
Image
ورقة البيانات
ورقة البيانات

في هذا التجميع ، استخدمنا مشغل mp3 مع Arduino Uno ، ومكبر صوت صغير PAM8403 مع ضبط مستوى الصوت ، ووحدة mp3 DFPlayer Mini ، وزوج من مكبرات الصوت 3 وات.

لا يخدم هذا المخطط مشغل الموسيقى فحسب ، بل يسمح أيضًا بالوظائف الصوتية لجهاز حاجز وقوف السيارات أو الروبوت ، من بين أمور أخرى. سيسمح هذا التجميع بوضع الصوت المسجل في الأجهزة. سيكون هذا الصوت طبيعيًا وليس مركبًا. بالنسبة لمعظم الناس ، هذه ميزات مفضلة مقارنة بالبدائل القياسية.

بالنسبة لهذا التجميع ، نستخدم Arduino Uno على وجه التحديد ، ولكن يمكنك أيضًا الاتصال بـ ESP8266 أو ESP32. من الواضح أن التعديل سيكون مطلوبًا على المسامير.

الخطوة 1: ورقة البيانات

الخطوة 2: DFPlayer Module

وحدة DFPlayer
وحدة DFPlayer

تستخدم وحدة DFPlayer الاتصال التسلسلي RX TX و VCC و GND. لديه إخراج إلى مكبرات صوت ومدخلات صوتية.

الخطوة 3: مكبر صوت صغير PAM8403

مضخم صوت صغير PAM8403
مضخم صوت صغير PAM8403

الخطوة 4: التجميع

المجسم
المجسم

الخطوة 5: المكتبات

مكتبات
مكتبات

أضف مكتبة "DFRobotDFPlayerMini" التالية للتواصل مع وحدة mp3.

ما عليك سوى الوصول إلى "Sketch >> Include Libraries >> Manage Libraries…"

الخطوة 6: كود المصدر

سنبدأ بتعريف المكتبات والثوابت التي سنستخدمها مع الكود الخاص بنا.

ابدأ بإنشاء كائن واحد ، البرنامج التسلسلي ، وآخر ، وهو myDFPlayer.

سيعمل المتغير buf ، وهو من النوع String ، على تخزين البيانات القادمة من Arduino Serial ، والتي ستكون أوامر لوحدة MP3. سيتم استخدام المتغير "pause" للإشارة إلى ما إذا كانت الموسيقى قيد التشغيل أم متوقفة مؤقتًا (إيقاف مؤقت = صحيح ، وتشير إلى أنها متوقفة مؤقتًا ، وإلا سيتم تشغيلها).

# تضمين "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia a serial por software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial (10، 11)؛ // RX، TX // Objeto responsável pela comunicação com o módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer؛ // varável responsável por armazenar os comandos enviados para controlar o player String buf؛ // varável responsável por armazenar o estado do player (0: tocando؛ 1: pausado) boolean pausa = false؛ // varia de 0 a 5 int equizacao = 0؛ // (0 = عادي ، 1 = بوب ، 2 = روك ، 3 = جاز ، 4 = كلاسيك ، 5 = باس) "// varável responseável بواسطة armazenar o total de músicas لا تقدم بطاقة SD. int maxSongs = 0 ؛

اقامة

في هذه الخطوة ، نضع خيارات من المطبوعات لإعطائك مؤشرات على أنها تقوم بتركيب الدائرة ، مع تقييمات للظروف الخاطئة ، على سبيل المثال.

إعداد باطل () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600) ؛ // Inicializa مسلسل فعل Arduino Serial.begin (115200) ؛ // Verifica se o modulo esta responseendo e se o // cartao SD foi encontrado Serial.println () ؛ Serial.println ("DFRobot DFPlayer Mini") ؛ Serial.println ("Inicializando modulo DFPlayer … (3 ~ 5 segundos)") ؛ if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:")؛ Serial.println ("1. Cheque as conexoes do DFPlayer Mini") ؛ Serial.println ("2. Insira um cartao SD") ؛ احيانا صحيح)؛ } Serial.println () ، Serial.println ("Modulo DFPlayer Mini inicializado!") ؛ // Definicoes iniciais myDFPlayer.setTimeOut (500) ؛ // المهلة التسلسلية 500 مللي ثانية myDFPlayer.volume (10) ؛ // المجلد 10 vai de 0 a 30 myDFPlayer. EQ (0) ؛ // Equalizacao عادي // recupera o numero de Músicas encontradas no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD) ، Serial.println () ، Serial.print ("Numero de arquivos no cartao SD:") ؛ Serial.println (maxSongs) ؛ // Mostra o menu de comandos menu_opcoes () ؛

قائمة الخيارات

يمكنك التحكم في هذا التجميع بالكامل من خلال الشاشة التسلسلية. لذلك في كل مرة ، سيقوم النظام بطباعة قائمة الخيارات التي لديك ، مع الأوامر والتوجيهات.

menu_opcoes () باطلة {Serial.println () ، Serial.println ("Comandos:") ؛ Serial.print ("[1-") ؛ Serial.print (maxSongs) ؛ Serial.println ("] الفقرة selecionar o arquivo MP3") ؛ Serial.println ("[s] parar reproducao") ؛ Serial.println ("[p] pausa / Continua a musica") ؛ Serial.println ("[e] seleciona equizacao") ؛ Serial.println ("[+ أو -] aumenta أو diminui o volume") ؛ Serial.println () ، }

حلقة

حلقة باطلة () {// Aguarda a entrada de dados pela serial while (Serial.available ()> 0) {// recupera os dados de entrada buf = Serial.readStringUntil ('\ n')؛ // reproducao (índice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:")؛ Serial.println (buf.toInt ()) ؛ myDFPlayer.play (buf.toInt ()) ، // dá play na música menu_opcoes () ؛ } // Pausa / Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica…")؛ myDFPlayer.start () ، } else {Serial.println ("Musica pausada…")؛ myDFPlayer.pause () ، } وقفة =! pausa؛ menu_opcoes () ؛ } // Parada if (buf == "s") {myDFPlayer.stop ()؛ Serial.println ("Musica parada!") ؛ menu_opcoes () ؛ } // Seleciona equizacao if (buf == "e") {equizacao ++؛ إذا (equizacao == 6) {equizacao = 0 ؛ } myDFPlayer. EQ (equizacao) ، Serial.print ("Equalizacao:") ؛ Serial.print (equizacao) ؛ Serial.println ("(0 = عادي ، 1 = بوب ، 2 = روك ، 3 = جاز ، 4 = كلاسيكي ، 5 = باس)") ؛ menu_opcoes () ؛ } // حجم Aumenta if (buf == "+") {myDFPlayer.volumeUp ()؛ Serial.print ("المجلد atual:") ؛ Serial.println (myDFPlayer.readVolume ()) ، menu_opcoes () ؛ } // Diminui volume if (buf == "-") {myDFPlayer.volumeDown () ؛ Serial.print ("المجلد atual:") ؛ Serial.println (myDFPlayer.readVolume ()) ، menu_opcoes () ؛ } } //حائط اللوب

موصى به: