תוכן עניינים:

נגן MP3 עם Arduino: 6 שלבים
נגן MP3 עם Arduino: 6 שלבים

וִידֵאוֹ: נגן MP3 עם Arduino: 6 שלבים

וִידֵאוֹ: נגן MP3 עם Arduino: 6 שלבים
וִידֵאוֹ: ערכה לבניה עצמית, שעון מעורר + נגן MP3 ארדואינו Arduino מבית היוצר של אודי רובוטיקה בסנטר 2024, נוֹבֶמבֶּר
Anonim
Image
Image
טופס מידע
טופס מידע

בהרכבה זו השתמשנו בנגן mp3 עם Arduino Uno, מגבר צליל מיני PAM8403 עם התאמת עוצמת קול, מודול MP3 של DFPlayer Mini וזוג רמקולים של 3 וואט.

תכנית זו משמשת לא רק לנגן המוזיקה, אלא גם לאפשר פונקציות קוליות בין היתר למכשיר מחסום חניה או רובוט. מכלול זה יאפשר הצבת קול מוקלט במכשירים. הקול הזה יהיה טבעי ולא מסונתז. עבור רוב האנשים, אלה הן תכונות עדיפות בהשוואה לחלופות הסטנדרטיות.

להרכבה זו אנו משתמשים במיוחד ב- Arduino Uno, אך ניתן גם להתחבר ל- ESP8266 או ESP32. מן הסתם, תידרש התאמה לסיכות.

שלב 1: גליון נתונים

שלב 2: מודול DFPlayer

מודול DFPlayer
מודול DFPlayer

מודול DFPlayer משתמש בתקשורת הטורית RX TX, VCC, GND. יש לו פלט לשני רמקולים וכניסת שמע.

שלב 3: מגבר מיני PAM8403

מגבר מיני PAM8403
מגבר מיני PAM8403

שלב 4: הרכבה

הַרכָּבָה
הַרכָּבָה

שלב 5: ספריות

ספריות
ספריות

הוסף את ספריית "DFRobotDFPlayerMini" הבאה לתקשורת עם מודול mp3.

פשוט גש ל"סקיצה >> כלול ספריות >> נהל ספריות …"

שלב 6: קוד המקור

נתחיל בהגדרת הספריות והקבועים בהם נשתמש עם הקוד שלנו.

התחל ביצירת אובייקט אחד, התוכנה הסדרתית ואחר, שהוא myDFPlayer.

משתנה buf, שהוא מסוג String, ישמש לאחסון הנתונים המגיעים מסדרת Arduino Serial, שיהיו הפקודות עבור מודול ה- MP3. משתנה ה"השהה "ישמש לציון אם המוסיקה מושמעת או מושהית (השהה = אמת, ומציין שהיא מושהית, אחרת היא מתנגנת).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia a serial serial software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // תגובה אחראית על comunicação com או módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responsável por armazenar os comandos enviados para controlar o player String buf; // variável responsável por armazenar o estado do player (0: tocando; 1: pausado) pausa בוליאני = false; // variável responsável por armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = רגיל, 1 = פופ, 2 = רוק, 3 = ג'אז, 4 = קלאסי, 5 = בס) "// תגובת תגובה על ארמזן או בסך הכל מוזיקה אינה מציגה כרטיס SD. Int maxSongs = 0;

להכין

בשלב זה שמנו אפשרויות של הדפסים על מנת לתת לך אינדיקציות לכך שהוא מגדיל את המעגל, עם הערכות של תנאי שווא, למשל.

התקנת void () {// Comunicacao serial com או modulo mySoftwareSerial.begin (9600); // Inicializa a serial do Arduino Serial.begin (115200); // Verifica se o modulo esta respondendo 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. צ'ק כמו conexoes לעשות DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); בעוד (נכון); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Deficoes iniciais myDFPlayer.setTimeOut (500); // פסק זמן 500 ms myDFPlayer.volume (10); // כרך 10 ו -0 ל -30 myDFPlayer. EQ (0); // Equalizacao normal // 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 ();

תפריט אפשרויות

אתה שולט במכלול הזה באמצעות הצג הטורי. אז בכל פעם התוכנית תדפיס את תפריט האפשרויות שיש לך, עם פקודות, כיוונים.

void menu_opcoes () {Serial.println (); Serial.println ("קומנדוס:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] עבור בחירה או MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] seleciona equilizacao"); Serial.println ("[+ או -] aumenta ou diminui o volume"); Serial.println (); }

לוּלָאָה

loop loop () {// 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 (); } פאוזה =! פאוזה; menu_opcoes (); } // Parada if (buf == "s") {myDFPlayer.stop (); Serial.println ("Musica parada!"); menu_opcoes (); } // Seleciona equilizacao if (buf == "e") {equalizacao ++; אם (equalizacao == 6) {equalizacao = 0; } myDFPlayer. EQ (שווה ערך); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println ("(0 = רגיל, 1 = פופ, 2 = רוק, 3 = ג'אז, 4 = קלאסי, 5 = בס)"); menu_opcoes (); } // אמצעי אחסון אם (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("נפח atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // נפח Diminui if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("נפח atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // לולאה

מוּמלָץ: