Mündəricat:

Arduino ilə MP3 Pleyer: 6 addım
Arduino ilə MP3 Pleyer: 6 addım

Video: Arduino ilə MP3 Pleyer: 6 addım

Video: Arduino ilə MP3 Pleyer: 6 addım
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Noyabr
Anonim
Image
Image
Məlumat cədvəli
Məlumat cədvəli

Bu yığıncaqda Arduino Uno ilə bir mp3 pleyer, səs tənzimləmə ilə mini PAM8403 səs gücləndiricisi, bir mp3 modulu DFPlayer Mini və bir cüt 3 Vatt dinamikdən istifadə etdik.

Bu sxem yalnız musiqi pleyerinə deyil, həm də bir park maneə qurğusu və ya robot üçün səs funksiyalarına icazə verməyə xidmət edir. Bu montaj aparatlarda qeydə alınan səsin yerləşdirilməsinə imkan verəcək. Bu səs təbii olacaq və sintez olunmayacaq. Əksər insanlar üçün bunlar standart alternativlərlə müqayisədə üstünlük verilən xüsusiyyətlərdir.

Bu montaj üçün xüsusi olaraq Arduino Uno istifadə edirik, ancaq ESP8266 və ya ESP32 -ə də qoşula bilərsiniz. Aydındır ki, sancaqlar üzərində düzəliş tələb olunacaq.

Addım 1: məlumat cədvəli

Addım 2: DFPlayer Modulu

DFPlayer Modulu
DFPlayer Modulu

DFPlayer modulu RX TX, VCC, GND seriyalı rabitədən istifadə edir. İki dinamikə və audio girişə malikdir.

Addım 3: Mini Gücləndirici PAM8403

Mini Gücləndirici PAM8403
Mini Gücləndirici PAM8403

Addım 4: Montaj

Məclis
Məclis

Addım 5: Kitabxanalar

Kitabxanalar
Kitabxanalar

Mp3 modulu ilə əlaqə üçün aşağıdakı "DFRobotDFPlayerMini" kitabxanasını əlavə edin.

Sadəcə "Sketch >> Kitabxanaları Daxil Et >> Kitabxanaları İdarə et …" bölməsinə daxil olun.

Addım 6: Mənbə Kodu

Kodumuzla istifadə edəcəyimiz kitabxanaları və sabitləri təyin etməklə başlayacağıq.

Bir obyekt yaratmaqla başlayın, serial proqramı və digəri, myDFPlayer.

String tipli buf dəyişən, MP3 modulu üçün əmrlər olacaq Arduino Serialından gələn məlumatları saxlamağa xidmət edəcək. "Pauza" dəyişənliyi musiqinin çalındığını və ya dayandırıldığını göstərmək üçün istifadə ediləcək (pauza = doğru və durdurulduğunu, əks halda çalındığını göstərir).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia bir sıra proqramlar üçün 10 və 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // cavablar MP3 və ya MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // oyunçunun String buf -a nəzarət etməsi ilə əlaqədar cavablandırılması; // oyunçuya verilən cavablar (0: tocando; 1: pausado) boolean pausa = false; // müxtəlif cavablar verilsə və ya bərabərləşdirilsə // 0 və ya daha çox int = bərabərdir; // ((0 = Normal, 1 = Pop, 2 = Rok, 3 = Caz, 4 = Klassik, 5 = Bas) "// ümumi məlumatların heç bir SD kart təqdim etməməsi üçün cavab verir. İnt maxSongs = 0;

Qurmaq

Bu addımda, məsələn, saxta şərtlərin qiymətləndirilməsi ilə dövrə qurduğuna dair göstərişlər vermək üçün çap variantları qoyduq.

void setup () {// MySoftwareSerial.begin (9600) modulu ilə Comunicacao seriyası; // Arduino Serial.begin (115200) serialının yayımlanması; // Verilənlər və ya cavablar haqqında məlumat əldə edin // SD kart üçün Serial.println (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println ("DFPlayer modullaşdırılmışdır … (3 ~ 5 gün)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. DFPlayer Mini -ni bir -biri ilə əlaqəli qeydlər"); Serial.println ("2. Insira um cartao SD"); while (doğru); } Serial.println (); Serial.println ("Modul DFPlayer Mini rəsmi!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // 500ms zaman aşımı seriyası myDFPlayer.volume (10); // Cild 10 və ya 30 a myDFPlayer. EQ (0); // Equalizacao normal // Músicas heç bir SD koda sahib deyil. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Komandalar menyusu menyusu_opcoes ();

Seçimlər Menyu

Bütün montajı serial monitor vasitəsilə idarə edirsiniz. Beləliklə, hər dəfə sxem, əmrlər, istiqamətlər ilə sahib olduğunuz Seçimlər Menüsünü çap edəcək.

void menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Seçilmiş MP3 və ya MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] seleciona equizacao"); Serial.println ("[+ və ya -] aumenta ou diminui o volume"); Serial.println (); }

Döngə

void loop () {// Aguarda və ya serial 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 ()); // oyun menyusu menyusunda_opcoes () oynayın; } // Pausa/Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica…"); myDFPlayer.start (); } başqa {Serial.println ("Musica pausada…"); myDFPlayer.pause (); } pausa =! pausa; menu_opcoes (); } // Parad if (buf == "s") {myDFPlayer.stop (); Serial.println ("Musica parada!"); menu_opcoes (); } // Seleciona equizacao if (buf == "e") {equalizacao ++; if (equizizacao == 6) {equalizacao = 0; } myDFPlayer. EQ (bərabərləşdirmə); Serial.print ("Equalizacao:"); Serial. çap (equizizacao); Serial.println ("(0 = Normal, 1 = Pop, 2 = Rok, 3 = Caz, 4 = Klassik, 5 = Bas)"); menu_opcoes (); } // Əməliyyat həcmi əgər (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Həcmi həcmi:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui həcmi if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Həcmi həcmi:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // loop

Tövsiyə: