Мазмұны:

MP3 ойнатқышы Arduino көмегімен: 6 қадам
MP3 ойнатқышы Arduino көмегімен: 6 қадам

Бейне: MP3 ойнатқышы Arduino көмегімен: 6 қадам

Бейне: MP3 ойнатқышы Arduino көмегімен: 6 қадам
Бейне: Lesson 101: Using IR Remote to control TV, AC Bulb with Relay, DC Motor and Servo Motor 2024, Қараша
Anonim
Image
Image
Деректер тізімі
Деректер тізімі

Бұл жинақта біз Arduino Uno бар mp3 ойнатқышты, дыбыс деңгейін реттейтін шағын PAM8403 дыбыс күшейткішін, DFPlayer Mini mp3 модулін және 3 ватт динамиктер жұбын қолдандық.

Бұл схема тек музыкалық ойнатқышқа ғана емес, сонымен қатар тұрақ тосқауыл құрылғысына немесе роботқа дауыс функцияларын қосуға мүмкіндік береді. Бұл жинақ аппаратқа жазылған дауысты орналастыруға мүмкіндік береді. Бұл дауыс табиғи болады және синтезделмейді. Көптеген адамдар үшін бұл стандартты баламалармен салыстырғанда артықшылықтар.

Бұл жиналыс үшін біз арнайы Arduino Uno қолданамыз, бірақ сіз ESP8266 немесе ESP32 қосыла аласыз. Әлбетте, түйреуіштерді реттеу қажет болады.

1 -қадам: мәліметтер парағы

2 -қадам: DFPlayer модулі

DFPlayer модулі
DFPlayer модулі

DFPlayer модулі RX TX, VCC, GND сериялық байланысын қолданады. Ол екі динамикке және дыбыс кірісіне шығады.

3 -қадам: PAM8403 шағын күшейткіші

PAM8403 шағын күшейткіші
PAM8403 шағын күшейткіші

4 -қадам: құрастыру

Ассамблея
Ассамблея

5 -қадам: Кітапханалар

Кітапханалар
Кітапханалар

Mp3 модулімен байланысу үшін келесі «DFRobotDFPlayerMini» кітапханасын қосыңыз.

«Эскиз >> кітапханаларды қосу >> кітапханаларды басқару …» бөліміне кіріңіз.

6 -қадам: бастапқы код

Біз кодпен қолданылатын кітапханалар мен тұрақтыларды анықтаудан бастаймыз.

Бір нысанды, сериялық бағдарламалық жасақтаманы және басқасын, яғни myDFPlayer құрудан бастаңыз.

Buf айнымалысы String түріне жатады, MP3 модулінің командалары болатын Arduino сериясынан алынған мәліметтерді сақтауға қызмет етеді. «Пауза» айнымалысы музыканың ойнатылып жатқанын немесе кідіртілгенін көрсету үшін пайдаланылады (пауза = ақиқат, және ол кідіртілгенін көрсетеді, әйтпесе ол ойнап тұрады).

#include «SoftwareSerial.h» #include «DFRobotDFPlayerMini.h» // Бағдарламалық қамтамасыз етудің сериялық нұсқасы 10 және 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer жауаптары; // ойыншылардың жауаптары String buf; // player жауабына жауап беру (0: tocando; 1: pausado) логикалық пауза = жалған; // әр түрлі жауапты жауаптар теңестіру үшін // барлығында 0 a 5 int equizacao = 0; // (0 = Қалыпты, 1 = Поп, 2 = Рок, 3 = Джаз, 4 = Классикалық, 5 = Бас) «// барлық жауаптарда SD картасы жоқ. Int maxSongs = 0;

Орнату

Бұл қадамда біз, мысалы, жалған шарттарды бағалай отырып, тізбекті орнатып жатқанын көрсететін баспа нұсқаларын қоямыз.

void setup () {// MySoftwareSerial.begin (9600) модульдік Comunicacao сериялық комбинациясы; // Arduino Serial.begin (115200) сериялы сериялы; // Verifica se o module esta answerendo e // o // cartoo SD encontrado Serial.println (); Serial.println («DFRobot DFPlayer Mini»); Serial.println («DFPlayer модульдері … (3 ~ 5 сегменттер)»); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println («Nao inicializado:»); Serial.println («1. DFPlayer Mini -ді қосалқы зат ретінде көрсету»); Serial.println («2. Insira um cartao SD»); while (true); } Serial.println (); Serial.println («DFPlayer Mini модульдері!»); // Definicoes iniciais myDFPlayer.setTimeOut (500); // 500ms myDFPlayer.volume (10) сериялы үзіліс; // 10 том және 0 және 30 myDFPlayer. EQ (0); // Equalizacao қалыпты // Músicas encodtradas 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 («] MP3 файлдарын таңдау»); Serial.println («[s] parar reproducao»); Serial.println («[p] pausa/continua a musica»); Serial.println («[e] seleciona equizacao»); Serial.println («[+ немесе -] aumenta ou diminui o volume»); Serial.println (); }

Цикл

void loop () {// 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 ()); // 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 (); } // Парада if (buf == «s») {myDFPlayer.stop (); Serial.println («Musica parada!»); menu_opcoes (); } // Seleciona equalizacao if (buf == «e») {equalizacao ++; if (equalizacao == 6) {equizizacao = 0; } myDFPlayer. EQ (equalizacao); Serial.print («Equalizacao:»); Serial.print (equizizacao); Serial.println («(0 = Қалыпты, 1 = Поп, 2 = Рок, 3 = Джаз, 4 = Классикалық, 5 = Бас)»); menu_opcoes (); } // Ақпараттық көлем, егер (buf == «+») {myDFPlayer.volumeUp (); Serial.print («Көлемі:»); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui көлемі егер (buf == «-») {myDFPlayer.volumeDown (); Serial.print («Көлемі:»); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // цикл

Ұсынылған: